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