为什么这段代码运行良好?
package certification;
public class Parent {
protected int x = 9; // protected access
protected void z(){System.out.println(5);}
}
package other;
import certification.Parent;
class C extends Parent{}
public class Child extends C {
public void testIt() {
System.out.println("x is " + x);
this.z();
}
}
import other.Child;
class Test extends Child{
public static void main(String args[]){
new Child().testIt();
}
}
这给出了输出:
x是9
5
但subclass(Child)
的{{1}}怎样才能访问类Parent的受保护成员。
答案 0 :(得分:0)
在您的示例类中,Child扩展C,C类扩展Parent。这意味着Child是Parent的子类。 受保护的字段对于所有子类和同一包中的类都是可见的。 https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html