gpt4 book ai didi

c# - 多级继承中的覆盖方法

转载 作者:太空狗 更新时间:2023-10-29 22:19:10 24 4
gpt4 key购买 nike

给定三个父/子类,如下所示:

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();
}
}

BdoSomething() 方法是否应该在其签名中同时包含 overridevirtual,因为它也被 C 类覆盖,或者只有 A 类在其 doSomething() 方法中具有 virtual签名?

最佳答案

如果某个方法已经在其中一个父类(super class)中标记为虚拟,则您不需要(读作:您不能)将它标记为虚拟。

该方法将在整个继承树中保持虚拟,直到子类将其标记为密封。密封方法不能被任何子类覆盖。

关于c# - 多级继承中的覆盖方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com