C 多型之抽象類語法

2021-09-10 06:44:30 字數 687 閱讀 6662

一、抽象方法

1.虛方法->抽象方法

父類裡面用 virtual 關鍵字修飾的方法叫做虛方法,子類可以使用 override 重新寫該虛方法,也可以不重寫。

虛方法還是有方法體的,當我們父類中的這個方法已經虛到完全無法確定方法體的時候,就可以使用另外一種形式來表現,這種形式叫抽象方法。

2.抽象方法語法

抽象方法的返回值型別前用關鍵字 abstract 修飾,且無方法體。

抽象方法必須存在於抽象類中。

二、抽象類

1.抽象類語法

在定義類的關鍵字 class 前面加 abstract 修飾的類就是抽象類。

子類繼承抽象類,使用 override 關鍵字重寫父類中所有的抽象方法。

2.抽象類注意事項

<1>抽象類中不一定要有抽象方法,但是抽象方法必須存在於抽象類中。

<2>抽象類不能被例項化,因為抽象類中有抽象方法(無方法體),如果真能例項化抽象類的話,呼叫這些無方法體的方法是沒有任何意義的,所以無法例項化。

三、使用場景

<1>當父類中的方法不知道如何去實現的時候,可以考慮將父類寫成抽象類,將方法寫成抽象方法。

<2>如果父類中的方法有預設實現,並且父類需要被例項化,這時可以考慮將父類定義成乙個普通類,用虛方法實現多型。

<3>如果父類中的方法沒有預設實現,父類也不需要被例項化,則可以將該類定義為抽象類。

多型 抽象類

多型 當中體現多型性,就是父類指向子類 左父右子 格式 父類名稱 物件名 new 子類名稱 介面名稱 物件名 new 實現類名稱 使用多型,物件向上轉型,是絕對安全的,但物件一旦向上轉型父類,就不能呼叫子類原本特有的類容 物件向下轉型,就是還原的動作 格式 子類名稱 物件名 子類名稱 父類物件 含義...

C 學習 多型 抽象類

多型 概念 run time binding 函式名和函式入口點的繫結發生在程式執行時刻 complie time binding 程式再編譯時進行函式名和函式入口的繫結 多型的本質 run time binding 多型的條件 1.必須有繼承 2.子類要把虛函式重寫 override 派生類的vi...

C 技術 多型 抽象類

2.實現過程是 用基類的指標類指向派生類的位址,在呼叫虛函式 因為呼叫虛函式是通 過查虛表執行函式的,但虛表中的虛函式指標可以在繼承的時候被子類覆蓋 3.在多型中會出現父類指標指向子類,那麼父類指標用完後會 delete,那麼這時候缺省會調 用父類的虛構函式,如果子類中有記憶體要釋放,那就被洩露掉了...