java的动态绑定机制@TOC
java的动态绑定机制
//a 的编译类型 A, 运行类型 B A a = new B();//向上转型 规则:
- 属性没有动态绑定机制,在那个类里就调用哪个属性
- 调用方法时会和运行时类型绑定即B类
- 动态绑定机制不影响继承机制的作用,即子类没有的属性和方法会去父类中找
调用方法时会和运行时类型绑定即B类
public class DynamicBinding {
public static void main(String[] args) {
Aa = new B();
System.out.println(a.sum());
System.out.println(a.sum1());
}
}
class A{
public int i = 10;
public int sum() {
return getI() + 10;
}
public int sum1() {
return i + 10;
}
public int getI() {
return i;
}
}
class B extends A{
public int i = 20;
public int getI() {
return i;
}
}
|