public class Test {
static class A {
public int i = 1;
public static void showI() {
System.out.println("1");
}
}
static class B extends A {
public int i = 2;
public static void showI() {
System.out.println("2");
}
}
public static void main(String[] args) {
int[] num =new int[10];
System.out.println(num[10]);
//编译期间a已经绑定了i和showI
A a = new B();
System.out.println(a.i);//1
a.showI();//1
//运行期间c绑定到子对象d上了
C c = new D();
System.out.println(c.i);//3 变量没有多态性 所以是3
System.out.println(c.getI());//4
c.showI();//4
}
}
class C{
public int i = 3;
public void showI(){
System.out.println("3");
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
}
class D extends C{
public int i = 4;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public void showI(){
System.out.println("4");
}
}