-
private : 在同一类内可见。使用对象:变量、方法。 「注意」:不能修饰类(外部类)用private修饰后的变量/成员方法如需在类外使用,要用Setter/Getter方法
-
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
-
public : 对所有类可见。使用对象:类、接口、变量、方法
-
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 「注意」:不能修饰类(内部类除外,即protected可以修饰内部类)
含义 | 本类内部(当前类) | 同一包内/同包子孙类 | 不同包子孙类 | 不同包非子类 | 继承性质 | |
---|---|---|---|---|---|---|
private | 私有的 | ✅ | 不能被继承 | |||
default「friendly」 | 默认的 | ✅ | ✅ | 同包的子类可以继承 | ||
Protected | 受保护的 | ✅ | ✅ | ✅备注 | 可以被同包+非同包子类继承 | |
public | 公共的 | ✅ | ✅ | ✅ | ✅ | 可以被继承 |
同包 : 无论是否是继承来的都无所谓.
不同包的子类 : (我的理解是) 继承来的类 .
Protected修饰符的备注信息:子类可以访问从父类继承来的protected方法,不可以访问没有从父类继承来的方法.