首頁 相術 正文

java面相對象的特徵

Java 面向對象的四個特徵1.
抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。(就是把現實世界中的某一類東西,提取出來,用程序代碼錶示,抽象出來一般叫做類或者接口。)抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是數據抽象,二是過程抽象。
數據抽象就是用代碼的形式表示現時世界中一類事物的特性,就是針對對象的屬性。比如建立一個鳥這樣的類,鳥都有以下屬性:一對翅膀、兩隻腳、羽毛等。抽象出來的類都是鳥的屬性,或者成員變量。
過程抽象就是用代碼形式表示現實世界中事物的一系列行為,就是針對對象的行為特徵。比如鳥會飛、會叫等。抽象出來的類一般都是鳥的方法。2.
繼承:繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的
派生類(子類)
,而原始類稱為新類的
基類(父類)
。派生類可以從它的基類那裡繼承方法和實例變量,並且類可以修改或增加新的方法使之更適合特殊的需要。因此可以說,繼承是為了重用父類代碼,同時為實現多態性作準備。3.
封裝:封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。封裝隱藏了類的內部實現機制,從而可以在不影響使用者的前提下改變類的內部結構,同時保護了數據。4.
多態性:多態性是指允許不同類的對象對同一消息作出響應。多態性包括
參數化多態性和包含多態性
。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。總的來說,方法的重寫、重載與動態鏈接構成多態性。Java引入多態的概念原因之一就是彌補類的單繼承帶來的功能不足。(為規避C++中多繼承造成的複雜繼承問題,java採用單繼承。)動態鏈接對於父類中定義的方法,如果子類中重寫了該方法,那麼父類類型的引用將會調用子類中的這個方法,這就是動態鏈接。
注意:繼承與重載:
一是子類與父類的關係,二是重載方法的調用問題。
子類對象可以直接當成父類對象使用,但反過來就不可以。舉例來說,人是父類,學生是人的子類,所以學生對象一定具備人對象的屬性,但是人對象就未必具有學生對象的特性。所以學生對象可以當做人對象來使用,但是人對象就不能當做學生對象使用。注意當把子類對象當成父類對象使用時,子類對象將失去所有的子類特性,只保留與父類同名的屬性和方法(同名方法不僅是函數名相同,而且參數類型也要一樣,否則不予保留)。此時可以對父類方法進行重寫。