【摘要】:如果子类继承于某个父类,当子类中声明的成员变量和父类中声明的成员变量重名时,子类就隐藏了继承到的成员变量。Cat类继承了Animal类,代码如下:上述代码的运行结果如下:第3行定义了一个私有变量name,此变量与Animal中的成员变量同名,导致第6行语句中this.name引用的Cat类中的name变量,这就叫作Cat类隐藏了Animal类中的同名的name变量。
如果子类继承于某个父类,当子类中声明的成员变量和父类中声明的成员变量重名时,子类就隐藏了继承到的成员变量。
【例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。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。