java物件導向編程— —第七章 繼承

來源:互聯網
上載者:User

標籤:

7.1繼承的起源

         繼承(Inheritance),即在物件導向編程中,可以通過擴充(extends)一個已有的類,並繼承該類的屬性的行為,來建立一個新的類。

         已有的類稱為父類(也可以稱為基類,超類),而新類稱為子類(也可以稱為衍生類別)。

繼承的優點:代碼的可重用性;父類的屬性和方法可用於子類;子類可以擴充父類的屬性和方法;設計應用程式變得更加簡單。

         7.2 繼承的使用原則

  • 觀察要使用的類,確定它們之間共同的和特有的屬性和行為,將這些共性資料移轉到父類裡,便於子類中進行方法和屬性的重用。
  • 對於不同的屬性和行為,在子類中可以重新定義。
  • 在Java中,一個類只有一個父類。一個類不能同時繼承兩個類。
  • 所有類的根類都是Object

子類繼承父類時,在子類對象產生前會先產生一個父類對象,然後在此基礎上擴充子類特有的屬性和方法。因此子類可以繼承父類所有的屬性和方法。所以繼承也叫擴充。

7.3 重寫

重寫發生在父類和子類之間,子類的方法名和父類相同,參數列表也相同,傳回型別也相同。當調用方法時,優先調用子類重寫的方法。如果子類沒有重寫父類的方法,那麼就調用父類的方法。

在方法前,可以加上註解@Override,強行檢測當前方法是否重寫了父類方法。如果沒有重寫到父類方法,則編譯錯誤。

finalize()是在記憶體回收對象之前,做一些清理工作。

7.4 super代表父類對象,super()代表父類的構造方法,產生父類對象。子類繼承於父類,如果在子類構造方法中沒有通過super()調用父類的構造方法產生父類對象,虛擬機器會自動加上super()。如果父類中沒有提供無參構造方法,那麼子類必須通過super(實參)進行顯示調用。否則,子類無法通過super()進行父類無參構造方法的調用,從而編譯錯誤。super()必須是子類構造方法的第一行代碼

7.5 final

         關鍵字final表示變數不可被修改;方法不能被重寫;類不能被繼承。

         final 類型修飾變數時,如果修飾基本類型,表示基本類型的值不能改變;如果修飾參考型別,表示該變數不能指向別的對象,但對象的屬性值可以改變。

         7.6 構造方法不能被子類所繼承,但子類對象建立時,會調用父類的構造方法產生父類對象。由於子類對象中包含完整的父類對象,所以父類對象中的所有屬性和方法都是可以繼承的(包括私人屬性和私人方法)。只是私人屬性和私人方法不能被子類直接存取。

java物件導向編程— —第七章 繼承

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.