- 相關(guān)推薦
Java語(yǔ)言的繼承結構
導語(yǔ):Java語(yǔ)言找那個(gè)多個(gè)具體的對象,不斷的向上抽取共享的內容,最終形成了一個(gè)體系,就是繼承體系。下面是Java語(yǔ)言的繼承結構,歡迎參考!
(1)把很多類(lèi)的相同特征和行為進(jìn)行抽取,用一個(gè)類(lèi)來(lái)描述。讓多個(gè)類(lèi)和這個(gè)類(lèi)產(chǎn)生一個(gè)關(guān)系。
這樣的話(huà),多個(gè)類(lèi)就可以省略很多代碼。這個(gè)關(guān)系就是繼承。java中用extends關(guān)鍵字表示。
(2)繼承的體系結構
A:多個(gè)具體的對象,不斷的向上抽取共享的內容,最終形成了一個(gè)體系。這個(gè)體系叫做繼承體系。
B:繼承體系的學(xué)習和使用原則
**學(xué)習頂層的內容。因為他是整個(gè)體系的共性?xún)热荨?/p>
**創(chuàng )建子類(lèi)使用。也就是使用底層的具體對象。
(3)繼承的特點(diǎn):
A:java中只能單繼承,沒(méi)有多繼承。
B:java可以有多重(層)繼承。
(4)繼承的好處:
繼承的出現提高了代碼的復用性。
繼承的出現讓類(lèi)與類(lèi)之間產(chǎn)生了關(guān)系,提供了多態(tài)的前提。
(5)子父類(lèi)中的成員關(guān)系
A:成員變量
在子類(lèi)方法中使用一個(gè)變量時(shí):
首先,在方法的局部變量中找這個(gè)變量,有則使用。
否則,在本類(lèi)中找成員變量,有則使用。
否則,在父類(lèi)中找成員變量,有則使用。
否則,報錯。
B:成員方法
用子類(lèi)對象使用一個(gè)方法時(shí)。
首先,在子類(lèi)中找這個(gè)方法,有則使用。
否則,在父類(lèi)中找這個(gè)方法,有則使用。
否則,報錯。
重寫(xiě)和重載的區別?
重載:在同一類(lèi)中。方法名相同,參數列表不同。重載可以改變返回類(lèi)型。
重寫(xiě):在不同類(lèi)中(子父類(lèi)中)。
方法聲明相同(返回類(lèi)型,方法名,參數列表均相同)。
重寫(xiě)需要注意:
**子類(lèi)方法的訪(fǎng)問(wèn)權限要大于等于父類(lèi)方法的訪(fǎng)問(wèn)權限。
**靜態(tài)只能重寫(xiě)靜態(tài)。但是這種情況一般不會(huì )出現。
構造方法
**子類(lèi)的實(shí)例化過(guò)程
***子類(lèi)創(chuàng )建對象時(shí),會(huì )先去創(chuàng )建父類(lèi)的對象。
默認是去調用父類(lèi)的無(wú)參構造方法。
***子類(lèi)構造方法中,第一行默認是super()
***為什么子類(lèi)中第一行會(huì )默認有super()
因為他繼承父類(lèi)的成員使用,使用前這些成員必須初始化,
而他們是父類(lèi)的成員,所以,必須通過(guò)父類(lèi)進(jìn)行初始化。
所以,會(huì )先創(chuàng )建一個(gè)父類(lèi)的對象。
**當父類(lèi)沒(méi)有無(wú)參構造方法時(shí)
必須使用this或者super調用其他的構造方法。
(6)this和super的區別
this:代表本類(lèi)對象的引用。
super:代表父類(lèi)的存儲空間。
【Java語(yǔ)言的繼承結構】相關(guān)文章:
java語(yǔ)言的接口與繼承02-26
Java繼承結構中類(lèi)的初始化05-07
Java 繼承07-04
Java語(yǔ)言接口與繼承的本質(zhì)是什么06-29
java的繼承總結08-06
java的繼承與組合的區別07-19
Java中的繼承與組合01-28