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