Java物件導向編程:封裝,繼承,多態

來源:互聯網
上載者:User

標籤:color   margin   建構函式   操作方法   例子   final   執行個體   inline   height   

Java物件導向的三大特徵:

封裝:通過Java的類來實現資料和操作方法的封裝,對外界可以將每一個Java類都視為一個黑箱,只需調用該黑箱提供的方法即可完成你想要的操作。

繼承:通過類的繼承,將統一的功能集中放在父類中,實現代碼的重用和可維護性。

多態:通過重載、重寫與覆蓋,實現不同類的不同形態特徵。


一個被定義成private的類成員為此類私人,它不能被該類外的所有代碼訪問,包括子類。


如果子類中不顯式調用父類的建構函式,則會調用父類的預設建構函式(如果有的話)。


父類和子類的相互轉換

在Java中我們可以將子類的引用賦給父類的對象,那麼這時子類中那些不是從父類繼承來的成員將不再可見,我們可以在通過強制轉換類型將父類再轉換成子類類型,那些成員又變得可見了,那麼轉換的時候發生了啥?


一個類在構造出來的時候,先把其各級父類都構造出來,一家人就是要齊齊整整嘛。這裡寫個測試例子,看看能不能拿到父類引用。

看來是拿不到父類執行個體的引用了。


必須被繼承的類:抽象類別

不能被繼承的類:最終類


父類的private成員方法是不能被子類方法覆蓋的,因此private類型的方法預設是final類型的。


final方法

如果不允許其子類覆蓋某個方法,則可以把這個方法聲明為final方法。

使用final方法的原因有兩個:

把方法鎖定,防止任何繼承類修改它的意義和實現。

高效,編譯器在遇到final方法時會轉入內嵌機制,大大提高執行效率。


對於final static類型的變數,static使得變數只存在一個副本,final使得它不能改變。


final成員賦值規定:

final成員能且只能被初始化一次。

final成員必須在聲明時或者在構造方法中被初始化,而不能在其他的地方被初始化。


類,抽象類別和介面的區別?

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.