Java中的访问权限修饰符

Java 中总共有4中访问权限修饰符:Private、Default、Protected、Public,这四种访问权限从左到右是逐渐变宽松的。

 

Private:只能在当前定义类(包括内部类)中访问,其它任何类(包括当前类文件中的其它非内部类)都不能访问。

 

Default:只能在与定义变量的类相同的包中访问,即使是子类但不在相同包中也不能访问。

 

Protected:只能在当前定义类当前包中的其它类、直接子类中访问,所以能否访问的判断规则是:

  1、看protected成员/方法 的 引用位置 直接子类中?

  2、看protected成员/方法 的 引用位置 定义位置 在同一包中?

另外需要注意的是:如果子类重写了父类的protected方法,则protected方法的定义属于当前子类;否则,继承得到的protected方法的实际定义位置在父类中甚至更往前

 

Public:所有地方都可以访问,不受包和继承关系的约束

 

posted @ 2017-11-16 10:13  chuenfai  阅读(130)  评论(0编辑  收藏  举报