java访问控制修饰符

修饰符 当前类 同包 子孙类(同包) 子孙类(不同包) 其它包
public Y Y Y Y Y
protected Y Y Y Y/N N
default Y Y Y N N
private Y N N N N
  • public:所有类可见,不管同包不同包。
    被声明为public的类、方法、构造方法和接口都能被任何其它类访问。
    如果几个相互访问的public类分布在不同的包中,通过导入所在的包便可。类的公有方法和变量都被子类继承。
  • protected:同包内的所有类和同包不同包的所有子类可见。不能修饰外部类
     (1) 子类和基类在同一个包内:被声明被protected的方法、变量、构造器能被同一包内的所有类访问
     (2) 子类和基类不在同一个包内:在子类中,子类能访问从基类继承来的protected方法,但不能访问基类实例的protected方法
    接口和接口的成员变量、成员方法都不能用protected修饰
  • default(缺省,什么也不写): 同包的所有类可见
    接口的变量默认情况下隐式声明为public static final,接口默认情况下声明为public
  • private: 当前类可见。不能修饰外部类
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容