1、抽象
忽略一個主題中與當前目標無關的東西,專註的註意與當前目標有關的方面。(就是把現實世界中的某一類東西,提取出來,用程序代碼表示,抽象出來的一般叫做類或者接口)。抽象並不打算瞭解全部問題,而是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一個數據抽象,而是過程抽象。
數據抽象-->表示世界中一類事物的特征,就是對象的屬性。比如鳥有翅膀,羽毛等(類的屬性)
過程抽象-->表示世界中一類事物的行為,就是對象的行為。比如鳥會飛,會叫(類的方法)
2、封裝
封裝是面向對象的特征之一,是對象和類概念的主要特性。封裝就是把過程和數據包圍起來,對數據的訪問隻能通過已定義的界面。如私有變量,用set,get方法獲取。
封裝保證瞭模塊具有較好的獨立性,使得程序維護修改較為容易。對應用程序的修改僅限於類的內部,因而可以將應用程序修改帶來的影響減少到最低限度。
3、繼承
一種聯結類的層次模型,並且允許和鼓勵類的重用,提供一種明確表達共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承瞭原始類的特性,新類稱為原始類的派生類(子類),原始類稱為新類的基類(父類)。派生類可以從它的父類哪裡繼承方法和實例變量,並且類可以修改或增加新的方法使之更適合特殊的需要。因此可以說,繼承為瞭重用父類代碼,同時為實現多態性作準備。
4、多態
多態是指允許不同類的對象對同一消息做出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活/抽象/行為共享/代碼共享的優勢,很好的解決瞭應用程序函數同名問題。總的來說,方法的重寫,重載與動態鏈接構成多態性。java引入多態的概念原因之一就是彌補類的單繼承帶來的功能不足。
動態鏈接-->對於父類中定義的方法,如果子類中重寫瞭該方法,那麼父類類型的引用將調用子類中的這個方法,這就是動態鏈接。