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