Java現在作為IT開發的主力開發語言,在編程界的地位是可想而知的了。繼承作為面對象的三大特征之一,其也是java學習的重要性。繼承這個知識點對于想要學習java的學員來說也是比較難的,今天粵嵌科技Java培訓小課堂就來給大家說下什么是java的繼承?特點是什么?
一、概述
繼承描述的是事物之間的所屬關系。例如,兔子屬于食草動物,食草動物屬于動物。它們之間有相同的行為,也有不同的行為,如果分別要進行定義,那些相同的行為還要再次定義會就會顯得麻煩,所以我們把那些相同的行為重新定義到一個新類中,在其它類需要用她的時候在調用它就好。定義那些共同的行為的類叫做父類,而調用它們的類叫子類。
可見,父類更通用,子類更具體。我們通過繼承,可以使多種事物之間形成一種關系體系。因此通俗的講,繼承就是子類繼承父類的屬性和行為,使得子類對象可以直接具有與父類相同的屬性、相同的行為。子類可以直接訪問父類中的非私有的屬性和行為。
二、繼承在java中的應用
那么,繼承在java中到底如何運用呢?那就必須借助到extends關鍵字了
發現,咱們并沒有在Studnet類和Teacher類中定義eat方法,但咱們還能正常調用eat方法,這就是繼承的體現。
繼承的優點
1.提高代碼的復用性(減少代碼冗余,相同代碼重復利用)。
2.使類與類之間產生了關系。
三、子類不能繼承的內容
并不是父類的所有內容都可以給子類繼承的,有一些內容是子類無法繼承的。
如:子類不能繼承父類的構造方法,因為構造方法要求和當前類名必須一致;子類可以繼承父類的私有成員,但是不能直接使用,必須間接使用,要提供get set方法。
私有化的成員變量和成員方法是不能被訪問的,只能在本類中調用,所以子類繼承父類并不是繼承父類中的所有內容。
四、繼承特點
只需明確一點,java只支持單繼承,不支持多繼承,但支持多重繼承。
五、繼承后成員變量的特點
Java培訓小課堂在上面的測試類代碼中,僅僅只創建了子類對象,并沒有創建父類對象,但在程序運行中卻使用了父類中的成員變量,這說明在程序中已經為父類的成員變量開辟了空間。所以,當子類繼承了父類,在創建子類對象的時候,堆中的子類對象中會劃分出一片空間來保存父類中的成員變量。
Java培訓小課堂上述代碼創建子類對象,給堆中子類和父類中的成員變量分別隱式初始化值后,創建好的對象會去調用子類的無參構造函數,在執行無參構造函數里面的代碼之前,會先執行隱式三步,即調用父類中的構造函數super().
Java培訓小課堂說明:super具有幾個作用:
1.super(實參)調用父類的構造方法
2.super.父類的成員變量:使用父類的成員變量
3.super.父類的成員方法(實參)
六、繼承中成員方法的特點
首先是子類中含有不同名方法的調用順序,原則是就近原則,子類中沒有而父類中有,執行父類中的方法,子類中有父類中也有,執行子類中的方法。
七、方法重寫
子類中出現與父類一模一樣的方法時(返回值類型,方法名和參數列表都相同),會出現覆蓋效果,也稱為重寫或者復寫。聲明不變,重新實現。
構成條件:
1.有繼承
2.子類的方法返回值類型方法名參數列表(參數類型)必須一致
3.子類的權限修飾符必須大于等于父類的權限修飾符
代碼示例的話可以參考上面代碼,差別不大。
八、構造器
構造器的名字是與類名一致的。所以子類是無法繼承父類構造方法的。構造器的作用是初始化對象成員變量數據的。所以子類的初始化過程中,必須先執行父類的初始化動作。子類的構造方法中默認有一個super(),表示調用父類的構造方法,父類成員變量初始化后,才可以給子類使用。
今天的Java培訓小課堂到此為止,咱們下期再見。