C 中 virtual 和 abstract 區別

2021-08-04 04:35:36 字數 469 閱讀 9331

1、這兩個都是用來修飾類和方法的

2、都不能用private修飾

3、virtual 虛擬 abstract 抽象

4、virtual修飾的方法必須有主體

而且子類可以不去實現這個方法

如果子類不重寫這個虛函式 在子類裡呼叫這個方法呼叫的是父類裡的

5、abstract修飾的方法不能有主體

子類必須重寫這個方法

抽象方法必須包含在抽象類裡

虛函式的應用:

a a=new b(); //a是父類,b 是子類

a.fuc();

if(b裡 重寫了a裡 的虛函式 )

else

抽象函式的應用:

因為子類必須重寫抽象函式 ,而且父類抽象函式不能有主體

a a=new b();

所以 a.fuc() 只能呼叫的是b裡的函式

更新中 未完成。。。

C 中Abstract和Virtual使用

1.abstract 抽象類 應該算是介面和類的中間型別 2.abstract使用時被子類繼承 3.abstract無法例項化 4.abstract使用位置應該是 架構的最底層,用來實現一些公用方法 5.abstract類中可以有非abstract修飾的方法和屬性 6.繼承abstract類的子類一...

C 中virtual和abstract的區別

c 的virtual abstract經常讓人混淆,這兩個限定詞都是為了讓子類進行重新定義,覆蓋父類的定義。但是用法上差別很大。a virtual修飾的方法必須有方法實現 哪怕只有一對大括號 abstract修飾的方法不能有實現。b virtual可以被子類重寫,abstract必須被子類重寫 c ...

C 中virtual和abstract的區別

在學習過程中用到此知識點,採集於網路,整理一下,再共享網路。virtual和abstract都是用來修飾父類的,通過覆蓋父類的定義,讓子類重新定義。它們有乙個共同點 如果用來修飾方法,前面必須新增public,要不然就會出現編譯錯誤 虛擬方法或抽象方法是不能私有的。畢竟加上virtual或abstr...