Java动态绑定机制
1.调用对象方法时,该方法会和对象的内存地址/运行类型绑定
2.调用对象属性时,没有动态绑定机制,哪里声明,就在那里使用
example
B类继承A类
a涉及到向上转型:的编译类型为A,运行类型为B
1.第一行输出什么呢?
那么a.sum()方法,子类中没有,去父类中找,父类中有,但是父类sum()方法中的getI()方法是调用父类还是子类呢?
答案就是动态内存绑定,运行类型是谁就调用那个类,运行类型是B,那么调用B类的getI()方法,return 20;
那么20+10=30,所以第一行输出30
2.第二行输出什么呢?
a.sum1()方法,子类中没有,去父类中找,父类中有,但是父类中的sum1()返回的是i+10,
这里的i是B类的i吗?不是,因为属性没有动态绑定机制,哪里声明,就在那里使用,即调用A里面的i,即为10,那么返回10+10=20,第二行输出20.