Java类前修饰符有 public 和 默认(缺省)
Java属性和方法前的修饰符有 public, protected, 默认(缺省),private
权限关系简图
注释:左图为各种权限范围(范围由大到小),右图标明两种修饰符的组合对应的访问权限
总结
- 只有当类访问权限为public,类方法和属性也为public时,方法和属性才可以适用于所有类(A)
- 当类方法和属性为private,不论类权限是什么,方法和属性都只能仅本类访问(D)
- 当类方法为public,方法和属性权限是protected时,方法和属性可供包内所有类以及包外的子类访问(B + G)
- 除了上述的三种情况,其余皆为包内访问权限(B)
- 如果是子类继承父类,那么除了父类private的属性和方法,其余的子类均可见(无论子类在包内还是包外)
- 类中static修饰的属性和方法也遵从上述权限控制规则(没有例外)