C 中的多型

2022-03-31 01:12:51 字數 925 閱讀 6837

什麼是多型?多型就是同一操作作用在不同的物件,可以產生不同的解釋,產生不同的執行結果。

實現多型可以通過派生類來複寫基類中的虛函式型方法和實現。

在c#4.0開發捷徑中說道虛方法和介面是c#中實現多型的唯一方式。

多型分為兩種:編譯時的多型和執行時的多型。

編譯時的多型是通過過載實現的,對於非虛函式來說,編譯器通過傳遞引數和返回型別的的決定實現何種操作。

執行時多型性:執行時多型性就是指系統執行時,才根據實際的情況決定實現何種操作,執行時多型一般是通過重寫(override)虛方法實現的。

什麼又是虛方法呢?虛方法就是virtual為關鍵字的方法;虛方法可以有乙個實現,抽象方法是以abstract為關鍵字的,抽象方法不能有實現方法,包含抽象方法的類必須是抽象類。抽象方法(abstract)相當於c++中的純虛方法

多型中涉及的概念:過載:、重寫、虛方法和抽象方法。

過載和重寫的區別:

過載:public int  overload(int i)

public bool overload(int i,int j)

過載中方法名必須相同,引數列表必須不同,返回型別可以相同。

只有虛方法和抽象方法才能被重寫,重寫中必須具有相同的函式型別、相同的函式名和相同的引數列表

只能在子類中重寫父類的虛方法。

關鍵字:override

重寫:public class  parent //父類

public  virtual

int numopera(int x,int y)

return x+y;  

public class child:parent  //子類

public  override int numopera(int x,int y)//重寫了父類中的資料操作方法

return x*y;

C 中的多型

封裝 繼承 多型,物件導向的三大特性,前兩項理解相對容易,但要理解多型,特別是深入的了解,對於初學者而言可能就會有一定困難了。我一直認為學習oo的最好方法就是結合實踐,封裝 繼承在實際工作中的應用隨處可見,但多型呢?也許未必,可能不經意間用到也不會把它跟 多型 這個詞對應起來。在此拋磚引玉,大家討論...

C 中的多型

c 中的多型分為靜多型和動多型 也就是靜態繫結和動態繫結兩種現象 靜動的區別主要在於這種繫結發生在編譯期還是執行期,發生在編譯期的是靜態繫結,也就是靜多型 發生在執行期的則是動態繫結,也就是動多型。一 靜多型可以通過模板和函式過載來實現,下面舉兩個例子 1 函式模板 template t max c...

C 中的多型

定義 同樣的訊息被不同型別的物件接收時產生不同的行為。原理 1.編譯時多型 靜態繫結 2.執行時多型 動態繫結 分類 1.過載 包括函式過載,運算子過載 靜態繫結 2.覆蓋 包括子類和父類間虛函式 虛析構函式和純虛函式 動態繫結 要求 1.函式名相同 2.引數不同 栗子 include using ...