【发布时间】:2011-01-28 02:57:24
【问题描述】:
abstract 和 virtual 都将在子类中被覆盖,这有什么区别。
虚拟方法是否有主体和抽象只是一个签名????
【问题讨论】:
-
顺便说一句,与抽象方法相比,部分方法允许您创建不需要重写的实现方法。
标签: c#
abstract 和 virtual 都将在子类中被覆盖,这有什么区别。
虚拟方法是否有主体和抽象只是一个签名????
【问题讨论】:
标签: c#
是不是虚拟方法有主体,抽象只是一个签名????
没错。关键是虚拟方法可以在派生类中被覆盖,而抽象方法必须被覆盖。同样,具有至少一个抽象方法的类本身必须是抽象的,即它不能直接实例化,因为它的实现(部分)缺失。
最后,每个抽象方法也隐含地是虚拟的。 virtual 基本上只是意味着该方法在运行时被分派给正确的类,因此可以重写它以实现运行时多态。
【讨论】:
抽象意味着您必须覆盖它。虚拟意味着您可以覆盖它。或多或少。
【讨论】:
我同意这里的两个答案,所以我不会重复它们。但这里有一个链接可能会有所帮助。
【讨论】: