C 中virtual與abstract的區別

2022-09-12 03:48:12 字數 482 閱讀 6463

c# virtua關鍵字用於修改方法、屬性、索引器或事件宣告,並使它們可以在派生類中被重寫。 例如,此方法可被任何繼承它的類替代。

不能將c# virtual修飾符與以下修飾符一起使用:static   abstract   override 

c#的virtual 和 abstract經常讓人混淆,這兩個限定詞都是為了讓子類進行重新定義,覆蓋父類的定義。用法上區別如下:

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

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

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

用abstract修飾的類只能被繼承不能夠被例項化。

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

C 中abstract與virtual的用法

關於c 中的abstract與virtual的用法一直迷糊。於是自己動手寫一寫試試。1.第一種情況 抽象動物類,宣告抽象方法shout 注意抽象方法沒有方法體 abstract class animal 貓類,繼承動物類,覆蓋抽象shout 方法 class cat animal public ov...

C 中virtual 析構函式

我們知道,用c 開發的時候,用來做基類的類的析構函式一般都是虛函式。可是,為什麼要這樣做呢?下面用乙個小例子來說明 有下面的兩個類 class clxbase virtual clxbase virtual void dosomething class clxderived public clxba...

C 中Abstract和Virtual使用

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