抽象和虚拟有什么区别?

时间:2010-03-16 13:37:33

标签: c#

抽象和虚拟都将在子类中被覆盖而不是差异。

是虚拟方法有身体和抽象只是一个签名????

3 个答案:

答案 0 :(得分:26)

  

是虚拟方法有身体和抽象只是一个签名????

完全。关键是虚拟方法可以在派生类中被覆盖,而抽象方法必须被覆盖。同样,具有至少一个抽象方法的类本身必须是抽象的,即它不能直接实例化,因为它的实现(部分)缺失。

最后,每个抽象方法也是虚拟的暗示。 virtual基本上只是意味着该方法在运行时被调度到正确的类,因此可以重写它以实现运行时多态性。

答案 1 :(得分:19)

摘要意味着你必须覆盖它。虚拟意味着您可以覆盖它。或多或少。

答案 2 :(得分:1)

我同意这两个答案,所以我不再重复。但这里有一个可能有用的链接。

10.6.3 Virtual, sealed, override, and abstract accessors