拥有这样的代码:
class X
{
public virtual void Test()
{
}
}
class Y : X
{
public override void Test()
{
base.Test() //added automatically, why?
}
}
答案 0 :(得分:4)
因为暗示,这不会破坏任何东西。
答案 1 :(得分:3)
因为在大多数情况下,它是有意义的,甚至需要调用基类实现,例如WinForms中的虚拟Dispose
方法(基类需要Disposed)或虚拟OnXXX
方法(基类通常从OnXXX
方法触发事件)。
当然,如果虚拟方法是你的,你不想要这种行为,我同意这很烦人;)