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

子类如何通过继承的setter方法修改父类私有属性?


子类如何通过继承的setter方法修改父类私有属性?

private修饰的父类属性,子类可以通过继承父类中的setName方法设置,这是为什么

在面向对象编程中,子类继承了父类的全部成员(包括属性和方法),但是父类中被private修饰的属性,子类似乎无法直接访问。然而,通过继承父类中的setName方法,子类却可以给自己设置被private修饰的属性。

要理解这一现象,需要明白一个关键概念:子类实例既是子类类型,又是父类类型。

子类没有继承自父类的private属性,但它自己是父类类型,因此它拥有父类类型的属性。而public方法继承自父类类型,所以子类通过调用setName方法,实际上是修改了它属于父类类型这一面的私有属性。

相关阅读