點擊查看:2015計算機等級考試二級Java入門教程章節(jié)匯總
點擊查看:2015計算機等級考試二級Java入門教程第六章匯總
6.5 多級繼承
正像我們在本章開始所指出的那樣,沒有什么可以阻止一個派生類再作為一個基類使用。例如,我們可以從類Dog中再派生出一個類Spaniel,不會存在任何問題:
試試看--一個Spaniel類
用最少的代碼來開始這個Spaniel類:
class Spaniel extends Dog
{
Public Spaniel(string aName)
{
super(aName,Spaniel)
}
}
為了試驗它,你可以在上個例子的數(shù)組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只附加了一個構(gòu)造函數(shù)成員。它使用關(guān)鍵字super調(diào)用Dog類的構(gòu)造函數(shù),并且把ahi~的值和String類型的對象"Spaniel"傳遞給該函數(shù)。
如果你再一次運行TryPalymorphi srn就應(yīng)該不時地選擇Spaniel對象。這樣,類Spaniel也加入到了方法toString()和sound()的多態(tài)選擇中,在本例中這兩種方法是從父類Dog中繼承過來的。這個被繼承的toString()方法與Spaniel對象一道運行得非常出色,但是假如你想提供一個單一的版本,就可以把它加到Spaniel的定義中。以后Spaniel對象將自動地選擇這個方法,而不是從Dog類中繼承這個方法。
相關(guān)推薦:
2015計算機等級考試二級Java入門教程章節(jié)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |