Java類的繼承總結


                     

 

  本文主要是講述Java類的繼承,更多Java技術知識,請登陸瘋狂軟件教育官網。加瘋狂軟件官方微信號:fkitorg,免費贏大獎,有機會贏得iOS培訓課程一套。

  在生活中我們往往把許多東西歸爲一個整體,如球有籃球,足球,高爾夫球等,它們都具有球類共有的屬性和方法,對於屬性來說如大小,體積,重量等,對於方法亦如此。既然如此,在定義各種球的同時我們難道要重複定義相應的類,而且還要重複編寫已有的代碼嗎??

  顯然,簡潔之美才爲我們所推崇。於是,聯繫生活中的繼承關係,類的繼承就此誕生。

  Java繼承的關鍵字是extends,格式爲:

  public class 類名(子類,超類,派生類) extends 類名(父類,基類) {

  }

  談到繼承,我們腦海中自然浮現出幾個問題:子類繼承了父類的哪些屬性和方法?能調用哪些屬性和方法?實際上,子類繼承了父類所有的屬性和方法,然而,卻不能調用所有的屬性和方法。此外,調用也分爲兩種情形:

  1.當子類和父類在同包下時:默認的,受保護的,公有的屬性和方法能被子類的對象以及在子類中調用。

  2.當子類和父類不在同一個包下時,若創建的對象不在子類或者父類中時,可調用的屬性和方法就只有公有的;如果在子類的{}中,可調用的屬性和方法包括公有的和受保護的。

  此外談到繼承,我們也會提到“方法重寫”這個名詞。比如說編寫打球的方法與打籃球的方法代碼時,就是在進行方法重寫。實現方法重寫的條件:兩者必須要存在繼承關係,而且方法的返回值數據類型,方法名,參數個數,參數類型,參數順序必須要完全一致。不過呢,子類在重寫方法時,訪問修飾符的範圍可以大於或者等於父類方法的訪問修飾符。俗話說:“薑還是老的辣,酒還是陳的香!”不過尼,在方法重寫這裏,你如果惦記這個就out了!當實現方法重寫後,如果你創建的對象是子類的對象,那麼會優先調用子類的方法,如果子類沒有改方法,纔會執行父類中定義的方法。

  再講下一個相關的名詞“自動轉型”。自動轉型有兩種格式:

  格式一:

  父類 對象名;

  對象名 = new 子類名(實參,...);

  父類 對象名 = new 子類名(實參,...);

  格式二:

  第三方類中的方法

  public void method(父類 對象名){

  //調用的方法必須要在父類中存在

  }

  創建對象

  父類 對象名A = new 子類名(實參,...);

  子類 對象名B = new 子類名(實參,...);

  調用方法

  method(對象名A);

  method(對象名B);

  它的條件也是兩者必須有繼承關係。可以發現,使用自動轉型,我們能實現多態(由方法重載,繼承,方法重寫,自動轉型等技術點的組合),減少重複的代碼。只是它也存在缺陷,Java在編譯程序時,只會根據對象名的類型,去查找是否存在該方法,如果存在,則通過編譯,如果不存在則報錯。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章