新手菜鳥學習C 的筆記總結 之多型

2021-06-20 08:15:49 字數 1756 閱讀 3211

多型的定義:同一操作作用於不同的類的例項,不同的類將進行不同的解釋,最後產生不同的結果。有兩種形式:

1,編譯時的多型,體現在過載上,根據傳遞的引數,返回值,來決定實現的操作。

2,執行時的多型,體現在虛方法上,執行時,根據實際情況來決定實現何種操作。

具體多型的情況:

1,虛方法:通過virtual來實現。可以有方法體,可以被繼承類重寫。

class phone

}class huaweiphone : phone

}class program

}輸出結果

phone

huaweiphone

huaweiphone

2,抽象方法:通過關鍵字abstract 來實現,可以看做沒有方法體的虛方法。

abstract class  phone

class huaweiphone : phone

}static void main(string args)

輸出結果

huaweiphone

huaweiphone

class  phone

public virtual void call()

}class huaweiphone:phone

public override void call()//非密封的方法

}class u8800pro : huaweiphone

*/public override void call()//重寫沒有被密封的方法

}class program

}輸出結果:

phone

huaweiphone

huaweiphone

huaweiphone

calling frome u8800pro

class phone

public virtual void call()

}class huaweiphone : phone

public override void call()

}class program

}輸出結果

phone

call frome phone

huaweiphone

call frome huaweiphone

phone

call frome huaweiphone

5,抽象類:通過關鍵字abstract來實現,可以作為基類,但不能直接例項化。不能是密封類。

abstract class  phone

}class huaweiphone:phone

public new void call()

}static void main(string args)

輸出結果:

huaweiphone

call from huaweiphone

huaweiphone

call from phone

sealed class  phone

}class huaweiphone:phone //此處編譯出錯,phone不能被繼承

public new void call()

}

總結:

C 學習筆記之多型 多型的學習 多型學習

c 學習筆記之多型 多型的學習 多型學習 多型分為兩類 靜態多型 函式過載和運算子過載屬於靜態多型,復用函式名 動態多型 派生類和虛函式實現執行時多型 靜態多型和動態多型的區別 靜態多型的函式位址早繫結 編譯階段確定函式位址 動態多型的函式位址晚繫結 執行階段確定函式位址 動態多型滿足條件 動態多型...

C 學習筆記之 多型

目錄應用 計算器類 純虛函式和抽象類 虛析構和純虛析構 型別轉換 多型性提供介面與具體實現之間的另一層隔離,將 什麼 和 怎麼做 分開 分類 動態多型 函式位址晚繫結 include using namespace std 動物類 class animal class dog public anim...

新手菜鳥學習C 的筆記總結 之委託

委託 委託是什麼?通過的學習,我們知道 委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞,這種將方法動態地賦給引數的做法,可以避免在程式中大量使用if else switch 語句,同時使得程式具有更好的可擴充套件性。個人感覺,委託分為委託型別 就是可以接受哪種方法 和...