为什么protected成为不同子类包中其他类的私有对象,但仍在同一父类包中受保护。
package a;
class A
{
protected a;
}
package b;
class B extends A
{
B()
{
System.out.println(a);
}
}
class C
{
C()
{
System.out.println(new B().a);//error
}
}
最佳答案
因为该软件包是不相关类的protected
访问修饰符的“可见性限制”。在此处查看文档:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html:
protected修饰符指定只能访问该成员
在自己的软件包中(与package-private一样),此外,通过
另一个包中其类的子类。
从上面可以看到,无论是子类,还是同一个包,您都不会。
关于java - 为什么保护对其他子类包中的其他类私有(private),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11344962/