栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java笔记总结(二十二)---动态绑定机制

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java笔记总结(二十二)---动态绑定机制

当调用对象方法时,该方法会和该对象的内存地址/运行类型绑定;当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用;

父类

public class C {
    public int i =10;

    public int getI() {
        return i;
    }

    public int sum(){
        return getI()+10;
    }

    public int sum1(){
        return i+10;
    }
}

子类

public class D extends C{
    public int i =20;

    public int getI() {
        return i;
    }

    public int sum(){
        return getI()+20;
    }

    public int sum1(){
        return i+10;
    }
}

调用类

public class T {
    public static void main(String[] args) {
        C d = new D();//父类指向子类
        System.out.println(d.sum());
        System.out.println(d.sum1());
    }
}

输出结果:
40
30

在子类中把sum方法注释,运行调用类;
因为子类中没有sum方法,就继续向父类中查找sum方法,sum方法中是return getI()+10;
getI()方法在子类和父类中都有,所以先去子类中查找,返回i=20,再加上10;
d.sum()返回结果应该是30;
在子类中把sum1方法注释,运行调用类;
因为子类中没有sum1方法,所以去父类中查找,父类的sum1方法返回的是return i+10;
属性没有动态绑定机制,哪里声明就在哪里使用,所以i=10,加上10,结果=20;
d.sum1()返回结果是20;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/763410.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号