Java - 21 动态绑定机制
- 方法具有动态绑定机制,当调用对象方法,该方法会和该对象的内存地址(运行类型)绑定
public class Main{
public static void main(String[] args){
A a = new B();
System.out.println(a.sum());
}
}
class A{
public int i = 10;
public int getI(){
return i;
}
public sum(){
return getI() + 10; // 执行到此处,a的运行类型是B,所以调用子类的getI()
}
}
class B extends A{
public int i = 20;
public getI(){
return i + 10;
}
}
- 属性没有动态绑定机制,哪里声明,哪里使用
public class Main{
public static void main(String[] args){
A a = new B();
System.out.println(a.sum1());
}
}
class A{
public int i = 10;
public int sum1(){
return i + 10; // return 10 + 10
}
}
class B extends A{
public int i = 20;
}