下面的代码片段是有效的
public class BaseClass
{
public virtual void Display()
{
Console.WriteLine("Virtual method");
}
}
public class DerivedClass : BaseClass
{
public override sealed void Display()
{
Console.WriteLine("Sealed method");
}
但为什么不
public class BaseClass
{
public virtual sealed void Display()
{
Console.WriteLine("Virtual method");
}
}
已编辑
其实我在读What is sealed class and sealed method?本文。所以我是按照作者的指示去做的。突然我尝试用基类玩 Sealed 的概念。这就是我提出这个问题的原因。
最佳答案
override sealed
是有效的,因为它表示“我正在覆盖基类方法,但派生类不能覆盖我。”这就说得通了。其中一部分是在谈论与其基类的关系;另一个在讲派生类的关系。
virtual sealed
会说“你可以覆盖我(virtual
)但你不能覆盖我(sealed
)。”这是没有意义的。这两个修饰符是矛盾的并且适用于相同的关系。
关于c# - Override Sealed 是有效的,但为什么在 C# 中不使用 Virtual Sealed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28315166/