多型 多型的好處(擴充套件性)

2021-08-23 12:02:09 字數 3195 閱讀 9924

多型的好處

c++中多型(理論結合實踐的理解)

1、多型:同乙個物件,在不同時刻體現出來的不同狀態。

2、多型的前提:

1)要有繼承關係實現關係(介面);

2)要有方法重寫

3)要有父類或者父介面引用指向子類`fu f= new zi();

注意:形參實參形式的(形參父類實參子類)

3、多型的分類:

1)具體類多型

class

fuclass

ziextends

fufu f=

newzi()

//父類引用指向子類

2)抽象類多型(常用)

abstract

class

fuclass

ziextends

fufu f=

newzi()

;//抽象父類引用指向子類

3)介面多型(常用)

inte***ce

fuclass

ziimplements

fufu f=

newzi()

;//父介面引用指向子類

如,fu f=

newzi()

;//左父類右子類

重點:成員方法,執行時,結果為子類重寫的成員方法的結果。

提高了**的維護性(繼承保證);提高了**的擴充套件性

原**,不易擴充套件:

(借用本**,也進一步理解一下工具類

//父類:動物類

class

animal

public

void

sleep()

}//貓類

class

catextends

animal

//方法重寫

public

void

sleep()

}//狗類

class

dogextends

animal

public

void

sleep()

}//新增豬類

class

pigextends

animal

public

void

sleep()

}//針對動物操作的工具類

class

animaltool

//最好把工具類的構造方法私有,防止別人建立該類的物件。該類是工具類。

//呼叫貓的功能

public

static

void

feedcat

(cat c)

//呼叫狗的功能

public

static

void

feeddog

(dog d)

//新增豬的,呼叫豬的功能

public

static

void

feeddog

(dog d)

}/*測試類

測試類裡面不放其他東西(如,定義其他方法)!只能是建物件,調方法。

所以新定義了個操作動物的工具類去放feedcat(),feeddog()方法。

*/class

duotaitest

}

改進後:

採用多型後,易於擴充套件。

重點在:**用fu f做形參接收引數,用zi z的z做實參。有了父類引用指向子類。**即動物類引用指向各具體的動物類。同時又有方法重寫,執行的時候肯定是個各子類重寫的方法在起作用。從而利用多型實現好的擴充套件性。

/*

多型的擴充套件性

*//*

程式輸出結果:

狗吃肉狗坐著睡

狗吃肉狗坐著睡

狗吃肉狗坐著睡

---------------

貓吃魚貓趴著睡

貓吃魚貓趴著睡

貓吃魚貓趴著睡

---------------

豬吃白菜

豬躺著睡

*///父類:動物類

class

animal

public

void

sleep()

}//貓類

class

catextends

animal

public

void

sleep()

}//狗類

class

dogextends

animal

public

void

sleep()

}//新增豬類

class

pigextends

animal

public

void

sleep()

}//針對動物操作的工具類

class

animaltool

//最好把工具類的構造方法私有,防止別人建立該類的物件。該類是工具類。

/*-------------改動-----------------------*/

//注意:形參是animal a,用動物接收。 到時候左邊是 fu f, 右邊是zi z, fu f= zi z

public

static

void

feedanimal

(animal a)

}/*測試類

測試類裡面不放其他東西(如,定義其他方法)!只能是建物件,調方法。

所以新定義了個操作動物的工具類去放feedcat(),feeddog()方法。

*/class

duotaitest2

}

如果你用的是c++的話,歡迎看我這篇非常用心的blogc++中多型由淺入深的理解:寫得非常通俗易懂,原理上也寫得非常清晰了。如果面試被問到的話,看了它肯定被問不倒啦。

the end.

架構 擴充套件性

擴充套件選和伸縮性 擴充套件性 指對現有系統影響最小的情況下,系統功能可持續擴充套件或提公升的能力。表現在系統基礎設施穩定不需要經常變更,應用之間較少依賴和耦合,對需求變更可以敏捷響應。它是系統架構設計層面的開閉原則 對擴充套件開放,對修改關閉 架構設計考慮未來功能擴充套件,當系統增加新功能時,不需...

CSS可擴充套件性

今日在寫pc官網的時候,一直對於html css的結構編寫完全按照自己的思維方式,今天把 交給老大的時候,被他指出很多編寫 的錯誤性,比如 結構,標籤的使用,語義化,css的可擴充套件性,由於 主要還是需要做seo優化,所以在標籤使用上也有些不合理之處,給了我一些建議,自己記錄以下 1 在html標...

NoSql的易擴充套件性

nosql現在很火很時髦,大家言必稱nosql,彷彿關係型資料庫已成陳舊落後的代名詞。但依我看,真正理解nosql的還不多,在實際專案中用過的應該就更少了。我也還不理解,更沒怎麼應用過,所以現在要努力學習。在學習過程中,常看到有吹噓nosql相比較關係型資料庫而言,有乙個優點是 易擴充套件。這怎麼理...