我已经阅读过C#中的虚拟方法。在C#中是否有任何称为虚拟类的概念? C#中的抽象类和C ++中的虚拟类是一样的吗?
答案 0 :(得分:19)
在C#中没有这样的东西 - 并且它实际上没有必要,因为不支持多个实现继承。使类抽象实际上只意味着您不能创建该类的实例,并且它们可能未完全实现(例如,可能包含抽象方法)。
答案 1 :(得分:7)
C#中没有虚拟类。抽象类不一样,因为你无法实例化抽象类。
您可以通过标记虚拟标记sealed来执行相反的操作,从而阻止它被继承。
答案 2 :(得分:3)
我会发现这个早期SO帖子的链接:In C++ what is a virtual base class?
正如其他人所提到的,由于C#没有多重继承,因此不需要具有限制多重继承的“虚拟基类”,因此它不适用于C#。只有C#中的成员才能是虚拟成员。