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