由於親本三/子類,像這樣:重寫方法在多層次的繼承
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 * /',它會不會抱怨? –