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。

猜你喜欢

转载自www.cnblogs.com/hglibin/p/10589367.html