面向對象的三大特征


面向對象的三大特征

什么是面向對象:

現實生活中存在各種形態不同的事物,這些事物之間存在着各種各樣的聯系。在程序中使用對象來映射現實中的事物,使用對象的關系來描述事物之間的聯系,這種思想就是面向對象

三大特征:

一、封裝

目的:隱藏類或方法的實現細節

讓使用者只能通過事先定制好的方法來訪問數據。

便於修改,增強代碼的可維護性。

簡單來說就是:將對象的屬性和行為封裝起來,不需要讓外界知道具體實現細節。

高內聚,低耦合

 

二、繼承

繼承是多態的前提,沒有繼承,就沒有多態。繼承主要解決的問題就是共性抽取。

概念:子類(也稱派生類,導出類)繼承父類(也稱超類,基類),父類就是類中通用的共性。

父類和子類的關系是(is ----a),子類只有一個父類。

意義:復用代碼---子類擁有父類的所有可見成員。

不同的類具有某些共同的屬性和行為。

實現多態。

繼承的實現

使用extends關鍵字,形式如下:

class 子類名 extends 父類名{

//類體

}

所有的類都直接或間接承接於java.lang.Object

protected關鍵字

protected可以在同類,同一包中的類,子類被調用,不能被其他包中的類調用。

當類希望被繼承時,某已成員可以被子類訪問,則應使用protected修飾該成員。

super關鍵字

指向父類實例的引用

用來顯式訪問父類成員或構造方法

方法重載和方法覆蓋(重寫)

方法名稱和參數列表不一致(方法重載)

方法名稱和參數列表一致(方法覆蓋)

三、多態

在同一繼承樹上的不同對象針對同一行為的不同表現。

(有繼承關系同時有方法的覆蓋)

例如,當聽到“Cut” 這個單詞時,理發師的行為表現是剪發,演員的行為表現是停止表演等。不同的對象,所表現的行為是不一樣的。

格式:

父類名稱 對象名 = new 子類名稱();

接口名稱 對象名 = new 實現類名稱();

例如:學生既是學生也是人。(兩種形態:學生 人)

類型變換

向上轉型(子類轉為父類)自動轉換(隱性轉換)

Dog dog = new PetDog();

向下轉型(父類轉為子類)須強制類型轉換

PetDog petDog = (PetDog)dog

instanceof運算符

對象名稱 instanceof 類名

(判斷這個對象是否是類的實例)

Object類

構造方法:Object()

常用操作:equals和toString

“火鍋底料”例子說明三者之間的關系

 

用一個例子來說明三者間的關系:

“火鍋底料”,火鍋店老板在生產火鍋底料的時候,不想要其他人知道它好吃的秘訣,就用封裝的方法把它配料的秘訣隱藏起來。但是每次一鍋一鍋進行火鍋底料的熬煮,很浪費時間和空間,這個時候火鍋老板就想到用繼承的方法,把相同的佐料直接壓縮成一包一包的,不用每次去熬煮火鍋底料,就不用重復去做相同的事情。但是過了一段事件后,顧客反應火鍋底料有點單調,沒有特色,這個時候火鍋點老板就想出其他口味的火鍋底料來滿足顧客。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM