面向對象中的三個基本特徵:封裝、繼承和多態
1、封裝,將現實中事物抽象成計算機領域中的對象,對象同時具有屬性和行為,這就是封裝。在封裝中,數據隱藏,對象只對外提供與其他對象交互的接口,把自身的一些屬性和實現細節對外是隱藏的。這樣對象內部數據就有不同級別的保護,防止了程序中某些部分被意外改變或者錯誤引用了對象的私有屬性。
2、繼承,實現對象復用性的一個方法,可以在不重複編寫以實現某個功能的前提下,對功能進行復用或者拓展。
繼承的實現有兩種:實現繼承和接口繼承
實現繼承就是直接使用基於類的屬性和方法,無需額外的編碼
接口繼承是僅僅使用屬性和方法的名稱,但是子類必須提供實現的能力
3、多態(可替代性),當前在繼承關係時,允許把父類對象看成和它一個或者多個子類對象同等。因此可以根據當前賦給父對象的子對象中具體特性以不同的方式運行。
多態的前提條件:
1)要有繼承關係
2)要有方法重寫
3)要有父類引用指向子類對象
多態的優勢:
1)提高了代碼的維護性
2)提升了代碼的擴展性
但是多態中不能使用子類的特有屬性和方法
面向對象的原則
單一功能原則:一個類的功能要單一,不要包羅萬象;
開放封閉原則:一個類在擴展性方面應是開放的,而在更改方面應是封閉的。
例如在一個類中,原本只是實現服務端的功能,現在需要添加客戶端功能。則應該在不修改服務端功能的前提下增添實現客戶端功能的代碼。那麼在最初功能設計時應該把所有功能分開,公共部分抽離出來。
替換原則:子類可以替換父類並出現在父類能夠出現的地方
依賴原則:具體依賴抽象,上層依賴下層。
比如:在A手機和B手機中,B手機無卡,但是B手機要用A手機中的網絡,這時候B手機就不能直接使用A手機的網絡(具體類);B手機應當設置打開WiFi,連接A手機的網絡(B定義抽象接口,由A來實現,B僅僅是使用該抽象接口)
接口分離原則:模塊間要通過抽象接口隔離開,而不是通過具體的類強耦合起來
對象之間的關係
1、聚合關係,
2、組合關係,
3、繼承關係。
4、依賴關係。