2013-02-27 26 views
11

我已閱讀有關C#中的虛擬方法。在C#中有沒有叫虛擬類的概念? c#中的抽象類和C++中的虛擬類是一樣的嗎?C#中是否有虛擬類?

在此先感謝。

+3

你在C++中的虛擬類是什麼意思?你的意思是虛擬內在的還是純虛函數的類? – shf301 2013-02-27 04:23:35

回答

16

在C#中沒有這樣的事情 - 它並不是必需的,因爲不支持多個實現繼承。創建一個類的抽象實際上只意味着你不能創建該類的實例,並且它們可能沒有完全實現(例如可能包含抽象方法)。

6

C#中沒有虛擬類。抽象類不一樣,因爲你不能實例化一個抽象類。

你可以做相反的事,通過標記sealed來阻止它被繼承。

3

我將與連結此早些時候SO後發表意見:In C++ what is a virtual base class?

正如其他人所說,因爲C#沒有多重繼承,需要有一個「虛基類」限制多重繼承不需要,因此它不適用於C#。只有C#中的成員可以是虛擬的。