class A {
public int i = 10;
}
class B extends A{
public int i = 20;
}
public class Test{
public static void main(String args[]){
B b = new B();
A a = b;
System.out.println(b.i);
System.out.println(a.i);
}
我给你分析一下答案吧。
B b = new B();//这句话你能理解吧。b.i = 20;
但是 A a = b; //这句话是父类引用指向了子类的对象。但是,对于成员变量i,a只能看到在自己的范围内定义的。它看不到子类中的i。所以你打印的b.i = 10;
|