C 中virtual和abstract的區別

2021-06-07 19:15:14 字數 386 閱讀 9891

c#的virtual & abstract經常讓人混淆,

這兩個限定詞都是為了讓子類進行重新定義,覆蓋父類的定義。但是用法上差別很大。

a)     virtual修飾的方法必須有方法實現(哪怕只有一對大括號),abstract修飾的方法不能有實現。

b)    virtual可以被子類重寫,abstract必須被子類重寫

c)     如果類中的某一函式被abstact修飾,則類名也必須用abstact修飾

d)    abstract修飾的類不能被建立例項。

e)     c#中如果準備在子類重寫父類的方法,則該方法在父類中必須用virtual修飾,在子類中必須用overide修飾,避免了程式設計師在子類中不小心重寫了父類父類方法。

C 中Abstract和Virtual使用

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

C 中 virtual 和 abstract 區別

1 這兩個都是用來修飾類和方法的 2 都不能用private修飾 3 virtual 虛擬 abstract 抽象 4 virtual修飾的方法必須有主體 而且子類可以不去實現這個方法 如果子類不重寫這個虛函式 在子類裡呼叫這個方法呼叫的是父類裡的 5 abstract修飾的方法不能有主體 子類必須...

C 中virtual和abstract的區別

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