Hello! 欢迎来到小浪资源网!


Java 子类如何间接访问父类的私有属性?


Java 子类如何间接访问父类的私有属性?

子类如何通过继承访问父类的私有属性?

Java 继承机制中,子类可以访问父类通过继承获得的 protected 和 public 成员,但不能直接访问 private 成员。不过,特殊情况下,子类可以通过父类中提供的公有 setter 方法来修改私有属性的值。

具体来说,当父类提供了一个公有 setter 方法 setName 时,子类可以通过这个方法来修改自己的父类类型的私有属性 name。这是因为:

  • 子类实例既是子类类型,又是父类类型: 每个子类实例都隐式地包含父类类型的对象,但它们各自拥有不同的属性和方法。
  • 继承公有方法: 子类继承了父类的所有公有方法,包括 setter 方法。
  • 设置父类属性: 当子类通过 setName 方法修改时,它实际上是修改了其父类类型对应的私有属性,而不是子类自己的属性。

因此,子类通过继承父类中的 setName 方法,可以绕过 private 修饰符,修改父类中被私有属性 name 的值。这在某些场景下,比如从外部修改继承而来的私有属性时非常有用。

立即学习Java免费学习笔记(深入)”;

相关阅读