点击查看:2015计算机等级考试二级Java入门教程章节汇总
点击查看:2015计算机等级考试二级Java入门教程第六章汇总
6.5 多级继承
正像我们在本章开始所指出的那样,没有什么可以阻止一个派生类再作为一个基类使用。例如,我们可以从类Dog中再派生出一个类Spaniel,不会存在任何问题:
试试看--一个Spaniel类
用最少的代码来开始这个Spaniel类:
class Spaniel extends Dog
{
Public Spaniel(string aName)
{
super(aName,Spaniel)
}
}
为了试验它,你可以在上个例子的数组the Animal中增加一个Spaniel对象,其改变的语句为:
Animal[]theAnimal(
new Dog(Rover, poodle)
new Cat(Max,Abyssinian)
new Duck(Daffy,Aylesbury)
new Spaniel("Fido")
不要忘记在Duck后面添加逗号。再次运行这个例子。
如何操作
类Spaniel将从类Dog中继承成员,包括Dog从类Animal继承过来的成员。类Dog是直接的超类,而类Animal是类Spaniel的间接超类。Spaniel只附加了一个构造函数成员。它使用关键字super调用Dog类的构造函数,并且把ahi~的值和String类型的对象"Spaniel"传递给该函数。
如果你再一次运行TryPalymorphi srn就应该不时地选择Spaniel对象。这样,类Spaniel也加入到了方法toString()和sound()的多态选择中,在本例中这两种方法是从父类Dog中继承过来的。这个被继承的toString()方法与Spaniel对象一道运行得非常出色,但是假如你想提供一个单一的版本,就可以把它加到Spaniel的定义中。以后Spaniel对象将自动地选择这个方法,而不是从Dog类中继承这个方法。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |