繼承的最大好處就是為了實現(xiàn)代碼的復(fù)用。那么,子類到底從父類得到的什么呢?

 

實例成員

 

父類的private成員不會被子類繼承,子類不能訪問。但是子類對象的確包含父類的私有成員。

父類的 包訪問成員 繼承為子類的包訪問成員。就好像他們直接定義在子類中一樣。

父類的 protected 成員繼承為子類的protected 成員。就好像他們直接定義在子類中一樣。

父類的 public 成員繼承為子類的public 成員,就好像他們直接定義在子類中一樣。

 

實例方法

 

繼承到的實例方法在子類中可以直接被使用,還需重點理解是方法的重寫和重載。

 

重寫override

一個繼承鏈中,父類的方法對于子類來說具有相同的語義,但是不同的細(xì)節(jié)操作,因此子類需要override父類的這個方法以滿足自己的需求。

注意的點:

1、方法名,參數(shù)表一定和父類中的相同,返回類型相同,或者是子類。

1、訪問權(quán)限一定不低于父類的實例方法

2、拋出的異常一定是父類方法拋出的異常相同,或者子類。

 

 

如果拿C++和java對比,那么java中的實例方法默認(rèn)都是virtual的(java中沒有virtual這個key word),因此在java中,子類可以直接重寫父類方法的任何非final實例方法,但是在C++中,除非父類使用virtual標(biāo)記一個方法為虛方法,子類才可以override這個方法。

對于重寫的方法,javac是不能確定的具體要調(diào)用那個類的方法,而是產(chǎn)生特殊的字節(jié)碼讓jvm去動態(tài)決定什么方法。這個就是所謂的前期綁定和后期綁定的差異。

大學(xué)生就業(yè)培訓(xùn),高中生培訓(xùn),在職人員轉(zhuǎn)行培訓(xùn),企業(yè)團(tuán)訓(xùn)

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式