package dynamicBinding;
public class DynamicBinding {
public static void main(String[] args) {
B b = new B();
System.out.println(b.sum()); // 方法看左,调用A().sum() 时遇到GetI(),会调用B类中的GetI()方法
System.out.println(b.sum1()); // 属性看右,调用A().sum1()时遇到i,会调用A类中的i属性
}
}
class A{
private int i=10;
public int sum(){
return GetI() + 20;
}
public int sum1(){
return i + 10;
}
public int GetI(){
return i;
}
}
class B extends A{
private int i=20;
// public int sum(){
// return GetI() + 20;
// }
//
// public int sum1(){
// return i + 10;
// }
public int GetI(){
return i;
}
}