为什么受保护的成员由放置在不同包中的类的子类的子类访问

时间:2017-01-19 17:04:04

标签: java oop

为什么这段代码运行良好?

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的受保护成员。

1 个答案:

答案 0 :(得分:0)

在您的示例类中,Child扩展C,C类扩展Parent。这意味着Child是Parent的子类。 受保护的字段对于所有子类和同一包中的类都是可见的。 https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html