首先我們要先了解什麼是封裝、繼承和多態?
1.封裝
1.1什麼是封裝?
首先先將對象抽象成一個類,然後將這個對象擁有的屬性和方法隱藏起來(private修飾符修飾),然後只保留特定的方法與外界進行交互。
1.2爲什麼需要封裝?
以爲封裝要符合面向對象設計原則的第一條:單一性原則,一個類把自己該做的事情封裝起來,而不是暴露給其他類去處理,當內部的邏輯發生變化時,外部調用不用因此而修改,他們只調用開放的接口,而不用去關心內部的實現
2.繼承
2.1什麼是繼承?
繼承是從已有的類中派生出新的類,新的類能吸收已有類的屬性和行爲,並能擴展新的能力。
2.2繼承的特徵有哪些?
(1)繼承具有傳遞性 A extends B ; B extends C 那麼C也具有A中的非private的屬性和方法。
(2)提高了代碼的複用性。
(3)通過增強一致性,增強了代碼的可維護性。
(4)子類不能繼承父類中被private修飾的屬性和方法。
(5)子類可以重寫父類裏面的方法,也可以添加自己的方法。
(6)類可以是單繼承,多實現。(也就是說,只能繼承一個類,但是能夠實現多個接口)
(7)當對子類實例化的時候,首先調用父類的構造函數,再調用子類的構造函數。如果父類的構造函數中,寫了自定義的構造函數,那麼子類要有super()來調用父類的構造函數,不過super()只能寫在構造函數的第一行。
3.多態
3.1什麼是多態?
允許不同類的對象對同一消息做出響應。即同一消息可以根據發送對象的不同而採取多種不同的行爲方式。
3.2多態的作用是什麼?
消除類型之間的耦合性。而實現多態的技術是:動態綁定(是指在執行期間判斷所引用對象的實際類型,根據其實際的類型調用其相應的方法)。
3.3如果想要實現多態性的前提是什麼?
(1)要有繼承關係。
(2)要有方法的重寫。
(3)父類引用指向子類對象。
3.4多態性的特徵有哪些?
(1)可替換性
(2)可擴展性
(3)簡化性