| 作用域 | 当前类 | 同package | 子孙类 | 其他package |
| public | √ | √ | √ | √ |
| protected | √ | √ | √ | × |
| friendly(default) | √ | √ | × | × |
| private | √ | × | × | × |
friendly 就是默认访问权限(成员变量前面不加public protected 和 private)
重点看protected和fiendly两种权限的区别:对于protected成员变量,子孙类在任何地方都能访问(包内或者包外),但是对于friendly或者说默认成员变量,其实是不存在子孙类访问权限的概念的,就是说如果子孙类在包内,则可以访问,子孙类在包外则不可以访问。
protected在其子类中可以访问,无论是子类内部还是子类的实例,无论它们是在哪个包中,
但如果子类与父类不在同一个包中,在子类中用父类的实例去访问的话不可以
本文详细解析了Java中的四种访问修饰符:public、protected、friendly(默认)和private的作用范围。通过对比不同修饰符的特点,阐述了它们在当前类、同包类、子孙类以及其他包中的访问权限差异。

5159

被折叠的 条评论
为什么被折叠?



