virtual和abstract的區別

2021-10-24 08:20:21 字數 277 閱讀 6376

virtual和abstract都是用來修飾父類bai的,通du過覆蓋父類的定義zhi,讓子類重新定義。dao

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

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

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

(4)無法建立abstract類的例項,只能被繼承無法例項化。

我也說說virtual 和非 virtual

virtual和非virtual關鍵是在執行時候,而不是在編譯時候.1.如果非virtual,編譯器就使用宣告的類對應的型別,也就是說,不是virtual的,在編譯時候,就定了,比如例子 執行結果 father,son,girl,都是執行的父類的方法 2,如果方法是virtual的,然後子類使用了o...

virtual和abstract的區別和聯絡

壹.相同 他們有些相似。有些場景用哪個都行!1.修飾父類 讓子類重寫 virtual和abstract都是用來修飾父類的,通過覆蓋父類的定義,讓子類重新定義。2.都用必須public 如果用來修飾方法,前面必須新增public,要不然就會出現編譯錯誤 虛擬方法或抽象方法是不能私有的。畢竟加上virt...

abstract和virtual方法實現多型的區別

多型就是不同物件對同乙個訊息的不同相應方式。舉例 cut 訊息 醫生收到cut訊息後,執行動手術 理髮師收到cut訊息後,執行減法 演員收到cut訊息後,停止演出。三個不同物件,對同乙個cut訊息的反應都不同,這就是多型。在c 中abstract和virtual方法都能實現多型。1.用abstrac...