Java探索之旅(9)——数据和方法的可见性
注意,在UML图中,public-protected-private分别用+,-,#表示。
类中成员修饰符 |
在同一类访问 |
在同一包访问 |
在子类内访问 |
在不同包可访问 |
Public |
√ |
√ |
√ |
√ |
Protected |
√ |
√ |
√ |
- |
Default |
√ |
√ |
- |
- |
Private |
√ |
- |
- |
- |
说明: 1.对于子类。同一包的子类可以直接访问(public,protected,default),不同包的子类只能直接访问(public,protected) 2.对于非子类。同一包的可以经过对象,访问(public,protected,default),不同包的只能经过对象访问public 3.非子类只能经过对象来访问。只有同一包的才能访问default,子类直接访问,非子类经过对象名访问。 4.子类覆盖,不能削弱但可以增强父类方法的访问权限。
具体见下图: