2013-02-27 24 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#中的成员可以是虚拟的。