我显然错过了这一点,但给出了:
package a;
public class Class1 {
protected int a=1;
}
package b;
import a.*;
public class Class2 extends Class1 {
Class2() {
Class1 c1=new Class1();
Class2 c2=new Class2();
System.out.println(a); //1
System.out.println(c1.a); //2
System.out.println(c2.a); //3
}
}
我知道 //1 由于通过继承使用而很好,而 //2 因为不是通过继承访问而失败,但为什么 //3 也可以?我认为变量 a 正在通过一个新对象访问,而 a 位于 Class1 中?
谢谢。