C 動態多型性的理解

2022-02-14 05:22:49 字數 1107 閱讀 8172

c#動態多型性是通過抽象類和虛方法實現的。

抽象類的理解

用關鍵字abstract建立抽象類,用於提供介面的部分類的實現(理解:介面不能提供實現,抽象類中可以有實現,介面與抽象類一起使用,可以達到父類中不能實現的子類就必須實現,父類中有實現的子類就不需要實現的目的)。抽象類包含抽象方法,抽象方法必須在派生類中實現,派生類具有更有更專業的功能。

有關抽象類的一些規則:

1、不能建立乙個抽象類的例項。

2、不能在乙個抽象類外包宣告乙個抽象方法。

3、通過在類定義前面放置關鍵字sealed,可以將類宣告為密封類。當乙個類被宣告為sealed時,它不能被繼承,抽象類不能被宣告為sealed。

虛方法的理解

當有乙個定義在類中的函式需要在繼承類中實現時,可以使用虛方法,虛方法是使用關鍵字virtual宣告的,虛方法可以在不同的繼承類中有不同的實現,對虛方法的呼叫是在執行時發生的,動態多型性是通過抽象類和虛方法實現的。

抽象方法:

abstract方法和virtual方法的區別:

1、virtual修飾的方法必須有實現(哪怕是僅僅新增一對大括號),abstract修飾的方法一定不能實現。

2、virtual可以被子類重寫,而abstract必須被子類重寫。

3、如果類成員被abstract修飾,則該類前必須新增abstract,因為只有抽象類才可以有抽象方法。

4、無法建立abstract類的例項,只能被子類繼承,子類若不實現abstract類中的抽象方法,依然是個抽象類,不能被例項化;相反,若子類實現abstract類的抽象方法,則子類可以被例項化。

隱藏方法:隱藏方法使用new關鍵字定義。

虛方法和隱藏方法的區別:

虛方法的呼叫,呼叫上,使用子類構造的物件呼叫虛方法,就會呼叫子類的方法,使用父類構造的物件,就會用父類的方法。

隱藏方法的呼叫,呼叫上,使用子類型別的宣告呼叫隱藏方法,就會呼叫子類的方法,若想呼叫被隱藏的方法,需要用父類型別的宣告來呼叫。

呼叫不同舉例:

classenemypublicvirtualvoidattack()}classboss:enemypublicnewvoidmove()}staticvoidmain(stringargs)

C 多型性的理解

根據清華大學鄭莉老師的書 c 語言程式設計 來總結 1 多型 是指類中具有相似功能的不同函式,使用同乙個名稱來實現 是對類的行為再抽象 多型是通過過載函式和虛函式來實現的。2 繼承討論的是類與類的層次關係,多型則是考慮在不同層次的類中,以及在同乙個類的內部,同名成員函式之間的關係問題,是解決功能和行...

C 多型性的理解和舉例

多型性是物件導向程式的乙個重要特徵,下面通過程式來理解程式的多型性 多型性 includeusing namespace std class point float gety const friend ostream operator ostream const point protected fl...

深入理解C 的多型性

c 程式語言是一款程式設計客棧應用廣泛,支援多種程式設計的計算機程式語言。我們今天就會為大家詳細介紹其中c 多型性的一些基本知識,以方便大家在學習過程中對此能夠有乙個充分的掌握。多型性可以簡單地概括為 乙個介面,多種方法 程式在執行時才決定呼叫的函式,它是物件導向程式設計領域的核心概念。多型 pol...