我有两个类(A和B),B扩展了A。
public class A {
protected int i = 1;
}
public class B extends A{
protected int i = 2;
}
在这种情况下,程序写入 1。
A a = new B();
System.out.println(a.i); //1
但是,如果我在构造函数中赋值 i,它会写 2。
public class B extends A{
public B(){
i=2;
}
}
A a = new B();
System.out.println(a.i); //2
为什么?