由于亲本三/子类,像这样:重写方法在多层次的继承
class A {
public virtual void doSomething() {
//do things
}
}
class B : A {
public override /*virtual?*/ void doSomething() {
//do things
base.doSomething();
}
}
class C : B {
public override void doSomething() {
//do things
base.doSomething();
}
}
如果类B
的doSomething()
方法有其签名都override
和virtual
,因为它也被覆盖C
类,或者应该只有类A
在其doSomething()
方法签名中有virtual
?
你试过这个代码吗? Visual Studio抱怨说“覆盖方法不能被标记为虚拟”。 –
这很奇怪。它根本不抱怨我。 –
如果你在'B'中取消注释'/ * virtual * /',它会不会抱怨? –