首页 理论教育 Java语言程序设计:继承中成员变量的隐藏

Java语言程序设计:继承中成员变量的隐藏

时间:2023-10-18 理论教育 版权反馈
【摘要】:如果子类继承于某个父类,当子类中声明的成员变量和父类中声明的成员变量重名时,子类就隐藏了继承到的成员变量。Cat类继承了Animal类,代码如下:上述代码的运行结果如下:第3行定义了一个私有变量name,此变量与Animal中的成员变量同名,导致第6行语句中this.name引用的Cat类中的name变量,这就叫作Cat类隐藏了Animal类中的同名的name变量。

Java语言程序设计:继承中成员变量的隐藏

如果子类继承于某个父类,当子类中声明的成员变量和父类中声明的成员变量重名时,子类就隐藏了继承到的成员变量。

【例4-4】 有一个Animal类,有一个Cat类,Cat类继承了Animal类。

Animal类代码如下:

第3行定义了一个成员变量name,第4~6行定义的是get方法,第7~9行定义的是set方法,当然get和set方法可以通过系统生成。

Cat类继承了Animal类,代码如下:

上述代码的运行结果如下:(www.xing528.com)

第3行定义了一个私有变量name,此变量与Animal中的成员变量同名,导致第6行语句中this.name引用的Cat类中的name变量,这就叫作Cat类隐藏了Animal类中的同名的name变量。

那么,子类如何操作父类中被隐藏的成员变量呢?有两种方法:第一,在子类中使用super关键字调用父类中被子类隐藏的成员变量。第二,子类通过调用从父类继承的方法来操作隐藏的成员变量。Cat类中的第5行和第9行代码,通过super.来调用父类Animal中被隐藏的成员变量name。

我们再来演示第二种方法,子类通过调用从父类继承的方法来操作父类中被隐藏的成员变量。Cat1类的代码如下:

上述代码的运行结果如下:

第8行和第12 行,通过this和cat对象调用Animal类中的get和set方法,来操作Animal类中被Cat类隐藏的成员变量name。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈