面對物件多型 C 面對物件設計學習資料(多型)

2021-10-14 16:54:27 字數 1465 閱讀 4065

#c語言初學#態性是指相同的行為可能於多種型別的隊形上獲得不同的結果。不同的物件,收到同一訊息的可能產生不同的結果,這種現象稱為多型。多型可分為靜態多型和動態多型兩種。多型的優點:**組織結構清晰、可讀性強、利於前期和後期的擴充套件和維護。

靜態多型:函式和運算子過載。2. 動態多型:

這**呼叫dospeak(cat *c)就是使用的子類cat中的函式但是,我們在定義dospeak函式的時候形參是用的animal,但在傳入貓的指標後就可以用cat的speak函式。其中的特點是父類函式speek函式前面有virtual將函式變成了虛函式,繼承後父類虛函式指標指向子類同名。

使用多型子類功能的使用方法:父類指標=new 子類

如果想擴充套件新的功能,需求修改原始碼,在真正的開發中提倡 開閉原則。開閉原則就是對擴充套件進行開放,對修改進行關閉。

多型發生的條件:

1.有繼承關係

2.子類要重寫父類的虛函式

純虛函式和抽象類:

在多型中父類的虛函式的實現是毫無意義的,主要都是呼叫子類重寫的內容,因此可以用純虛函式

純虛函式的語法:virtual 返回值型別 函式名 (引數列表)=0;

當類中有純虛函式,那麼這個類叫作抽象類

抽象類特點:

1.無法例項化物件

2.子類必須重寫抽象類中的純虛函式,否者也屬於抽象類否者做了子類也是抽象類。

在test函式中通過對父類指正a開創不同的子類空間,就與實現該子類中的重寫函式。從而實現過天實現功能的多樣化。

比如一台飲料機器可以製作咖啡喝茶,製作流程如下,功能一樣的就只有在第二步和第三步。

製作咖啡: 1.煮水 2.沖泡咖啡 3.倒入杯中 4.加糖和牛奶

製作茶: 1.煮水 2.沖泡茶葉 3.倒入杯中 4.加入檸檬

用繼承的方法重寫了父類的純虛函式,使功能在特定的時候發生改變實現多型。

虛析構和純虛析構

要將父類析構函式變為虛析構函式,因為是用父類的指標,所析構的時候,如果子類有堆區的資料是無法別釋放的,所以產生了記憶體洩漏在~animal()前加上virtual成為虛析構函式

純虛析構 virtual ~animal()=0; 純虛析構也是需要**的實現的,有了純虛析構後中國物件也是抽象物件

程式設計初學者,有錯誤就提喲。學習嘛。

面對物件 多型

1,多型 封裝1,私有化 保證資料安全性 2,抽取成方法 提高 的復用性和可維護性 繼承可以讓類跟類之間產生關係 可以抽取重複的 到父類中。是多型的前提 多型多種形態 概述 student s new student 真正的物件 new student 左邊的s 僅僅是乙個接收變數而已。因為要方便以...

mysql面對物件 面對物件資料庫

物件導向的方式訪問資料庫 造物件 db new mysqli localhost root 123 mydb 判斷連線是否出錯 if mysqli connect error mysqli connect error or die 連線失敗!寫sql語句 sql insert into info v...

面對物件程式設計

重要的是什麼,是概念的理解。類是什麼,物件是什麼,然後封裝是什麼,繼承是什麼,多型是什麼。類是抽象的,高度概括的物件集合體。當然亂寫的類什麼都不是,轄七八糟往乙個類裡塞。這也是不合理的。這是學到目前為止,最為有用的一節課。非常的有用。就是基本概念的講解。概念的理解多少,決定你走多遠。class st...