gpt4 book ai didi

c# - 声明为 `override` 的方法是否仍为 `virtual`?

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:19 24 4
gpt4 key购买 nike

override 声明的方法是否仍然是virtual

例如

class C1 {

public virtual void MyMethod()
{
}

}

class C2: C1 {

public override void MyMethod()
{
}

}

C2 中定义的 MyMethod 是否仍然是 virtual 作为在 C1 中定义的被它覆盖的方法?即它可以被派生自 C2 的类中的方法覆盖吗?

如果没有,我怎样才能使它虚拟化?

最佳答案

是的,你可以覆盖它,但是一旦你密封它,如果你从密封版本派生,你就不能再覆盖它:

public class C1 {

public virtual void MyMethod() {
}

}
public class C2 : C1 {
public sealed override void MyMethod() {
base.MyMethod();
}
}

以下将不起作用:

public class C3 : C2 {
// here you will no longer be able to override it
}

但如果其他类派生 C1,那仍然有效。

关于c# - 声明为 `override` 的方法是否仍为 `virtual`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42708272/

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