Java访问控制修饰符的权限范围(清晰总结版)

Java类前修饰符有 public 和 默认(缺省)

Java属性和方法前的修饰符有 public, protected, 默认(缺省),private

权限关系简图

image-20211029165827467

注释:左图为各种权限范围(范围由大到小),右图标明两种修饰符的组合对应的访问权限

总结

  • 只有当类访问权限为public,类方法和属性也为public时,方法和属性才可以适用于所有类(A)
  • 当类方法和属性为private,不论类权限是什么,方法和属性都只能仅本类访问(D)
  • 当类方法为public,方法和属性权限是protected时,方法和属性可供包内所有类以及包外的子类访问(B + G)
  • 除了上述的三种情况,其余皆为包内访问权限(B)
  • 类中static修饰的属性和方法也遵从上述权限控制规则(没有例外
  • 如果是子类继承父类,包外子类可以访问public和protected属性字段;包内子类除了父类的私有字段其余均能访问
  • 注意无法跨包继承

版权声明:本文为qq_51800570原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。