14

我已经阅读了 C# 中的虚拟方法。C#中是否有任何称为虚拟类的概念?C#中的抽象类和C++中的虚拟类是一样的吗?

4

3 回答 3

19

C# 中没有这样的东西——实际上没有必要,因为不支持多重实现继承。使类抽象实际上仅意味着您不能创建该类的实例,并且它们可能没有完全实现(例如,可能包含抽象方法)。

于 2013-02-27T04:21:01.790 回答
7

C# 中没有虚拟类。抽象类不一样,因为您无法实例化抽象类。

您可以通过将其标记为seal来做与标记虚拟事物相反的操作,这样可以防止它被继承。

于 2013-02-27T04:26:32.037 回答
3

我将提供指向此早期 SO 帖子的链接:在 C++ 中,什么是虚拟基类?

正如其他人所提到的,由于 C# 没有多重继承,因此不需要有一个限制多重继承的“虚拟基类”,因此它不适用于 C#。只有 C# 中的成员可以是虚拟的。

于 2013-02-27T04:53:42.610 回答