protected Java 中的 protected 访问修饰符
总结
在同一个包中,类中 protected 或 default 修饰的属性或方法可以在类外被其对象 (实例) 外部访问,也可以被子类继承。此时,protected 或 default 的访问级别与 public 相同。
在不同的包中,类中 protected 修饰的属性或方法在类外不可以被其对象 (实例) 外部访问,可以被子类继承。类中 default 修饰的属性或方法在类外不可以被其对象 (实例) 外部访问,不可以被子类继承,此时 default 如同 private。
所以 Java 包的作用域会影响 protected 和 default 的访问限制。在同一个包中 protected 或 default 相当于 public;在不同的包中 protected 恢复原有的特性,而 default 则被提升为 private。
讲解
- 两个包中分别有不同的类,结构如下:
- 在同一个包中,类中 protected 或 default 修饰的属性或方法可以在类外被其对象 (实例) 外部访问,也可以被子类继承。此时,protected 或 default 的访问级别与 public 相同。
- 在不同的包中,类中 protected 修饰的属性或方法在类外不可以被其对象 (实例) 外部访问,可以被子类继承。类中 default 修饰的属性或方法在类外不可以被其对象 (实例) 外部访问,不可以被子类继承,此时 default 如同 private。
- 所以 Java 包的作用域会影响 protected 和 default 的访问限制。在同一个包中 protected 或 default 相当于 public;在不同的包中 protected 恢复原有的特性,而 default 则被提升为 private。