特色:從新排版,精華版本,濃縮版本,懶人版本,編程
面向對象的四個基本特徵是:抽象、封裝、繼承、多態。
模塊化
一、抽象類中abstract 中的抽象方法 必須加abstract 而且修飾符爲public 無大括號。函數
二、接口中不能定義任何屬性。spa
三、final關鍵詞,子類沒法重寫 重載設計
封裝最好理解了。封裝是面向對象的特徵之一,是對象和類概念的主要特性。
指針
封裝,也就是把客觀事物封裝成抽象的類,而且類能夠把本身的數據和方法只讓可信的類或者對象操做,對不可信的進行信息隱藏。
對象
面向對象編程 (OOP) 語言的一個主要功能就是「繼承」。繼承是指這樣一種能力:它可使用現有類的全部功能,並在無需從新編寫原來的類的狀況下對這些功能進行擴展。
繼承
經過繼承建立的新類稱爲「子類」或「派生類」。被繼承的類稱爲「基類」、「父類」或「超類」。接口
繼承的過程,就是從通常到特殊的過程。
開發
要實現繼承,能夠經過「繼承」(Inheritance)和「組合」(Composition)來實現。
在考慮使用繼承時,有一點須要注意,那就是兩個類之間的關係應該是「屬於」關係。例如,Employee 是一我的,Manager 也是一我的,所以這兩個類均可以繼承 Person 類。可是 Leg 類卻不能繼承 Person 類,由於腿並非一我的。
OO開發範式大體爲:劃分對象→抽象類→將類組織成爲層次化結構(繼承和合成) →用類與實例進行設計和實現幾個階段。
多態性(polymorphisn)是容許你將父對象設置成爲和一個或更多的他的子對象相等的技術,賦值以後,父對象就能夠根據當前賦值給它的子對象的特性以不一樣的方式運做。簡單的說,就是一句話:容許將子類類型的指針賦值給父類類型的指針。
實現多態,有二種方式,覆蓋,重載。
覆蓋,是指子類從新定義父類的虛函數的作法。
重載(PHP不支持),是指容許存在多個同名函數,而這些函數的參數表不一樣(或許參數個數不一樣,或許參數類型不一樣,或許二者都不一樣)。
那麼,多態的做用是什麼呢?咱們知道,
封裝能夠隱藏實現細節,使得代碼模塊化;
繼承能夠擴展已存在的代碼模塊(類);它們的目的都是爲了——代碼重用。
而多態則是爲了實現另外一個目的——接口重用!多態的做用,就是爲了類在繼承和派生的時候,保證使用「家譜」中任一類的實例的某一屬性時的正確調用。
泛化(三角):
聚合(組合)
聚合(共享 白色菱形)
組合(黑色菱形)
依賴(虛線箭頭)