點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門教程章節(jié)匯總
點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門教程第六章匯總
6.2 類繼承
概括地講,從一個(gè)基類派生出一個(gè)新類的過程是補(bǔ)充類定義的過程。說明的附加成員使得派生類有別于基類。在新類中聲明的所有成員是除已經(jīng)在基類中定義的成員以外的那些成員。在由Dvg派生的Spaniel類中,保存名字和品種的數(shù)據(jù)成員定義在Dag類中,它們也將自動(dòng)地成為Spaniel類的成員。一個(gè)Spaniel對(duì)象內(nèi)部將總擁有一個(gè)完整的Dog對(duì)象,包括所有的數(shù)據(jù)成員和方法。這并不意味著在Dog類中定義的所有成員對(duì)于Spaniel類中的特有方法都可用,有一些可以用,而有一些則不可用。在派生類中包含可以在派生類中訪問的基類成員,我們把它稱之為類的繼承(class inheritance).基類的被繼承成員(inherited member)在派生類內(nèi)是可被訪問的那一部分,如果基類中的成員在派生類中不可訪問,則它就不是派生類的被繼承成員,但是不是被繼承成員的基類成員仍然作為派生類對(duì)象的一部分。
派生類的被繼承成員是那個(gè)類的一個(gè)完整成員,并且它可以被類中的任何方法自由地訪問。派生類對(duì)象將包含基類的所有被繼承成員(包括字段和方法〕,以及派生類所特有的成員。注意,一個(gè)派生類對(duì)象總是在其內(nèi)部包含一個(gè)完整的基類對(duì)象,所有沒有被繼承的字段和方法也包括在內(nèi)。我們需要進(jìn)一步分析繼承是如何操作的,以及一個(gè)基類成員的訪問屬性是如何影響它在派生類中的可見性的。
我們需要考慮幾個(gè)定義和使用派生類方面的問題。第一,我們需要知道基類的哪些成員被繼承到派生類中。我們將看到對(duì)于數(shù)據(jù)成員和方法分別意味著什么,在這里我們應(yīng)該清楚它們之間的細(xì)微差別。我們還會(huì)看到在你建立一個(gè)派生類對(duì)象時(shí)會(huì)發(fā)生的事情。關(guān)于這一點(diǎn),還有一些問題需要再周密考慮一下。讓我們從由基類繼承的數(shù)據(jù)成員開始介紹。
繼承數(shù)據(jù)成員
在下面這個(gè)示意圖中顯示了在子類中被繼承的類成員允許有哪些訪問屬性。它說明了在同一個(gè)包中定義子類或者在包含基類的不同包中定義子類所發(fā)生的情況口請(qǐng)記住,繼承暗示著成員在派生類中可訪問,而不僅僅限于眼前定義的類。
注意,要在包含基類的包的外部派生一個(gè)類,這個(gè)基類就必須聲明為public,如果沒有聲明為public,這個(gè)類就不能直接地?cái)U(kuò)展到包的外部。
相關(guān)推薦:
2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門教程章節(jié)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |