浏览Oracle教程.
如果类没有修饰符(默认值,也称为包私有),则只能在其自己的包中显示
protected修饰符指定只能在其自己的包中访问该成员(与package-private一样),此外,还可以在另一个包中通过其类的子类访问该成员.
Modifier | Class | Package | Subclass | World
————————————+———————+—————————+——————————+———————
public | Y | Y | Y | Y
————————————+———————+—————————+——————————+———————
protected | Y | Y | Y | N
————————————+———————+—————————+——————————+———————
no modifier | Y | Y | N | N
————————————+———————+—————————+——————————+———————
private | Y | N | N | N
Run Code Online (Sandbox Code Playgroud)
如果成员或构造函数被声明为protected,则只有在满足以下条件之一时才允许访问:
从包含声明受保护成员或构造函数的类的包中发生对成员或构造函数的访问.
如第6.6.2节所述,访问是正确的.
我们说存在默认访问权限,只有在声明类型的包内发生访问时才允许访问.