Override Sealed 是有效的,但为什么在 C# 中不使用 Virtual Sealed?

Override Sealed is valid but why not Virtual Sealed in C#?

以下代码片段有效

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? 这篇文章。所以我是按照作者的指示去做的。突然想用基class玩Sealed的概念。这就是我提出这个问题的原因。

密封:

You can also use the sealed modifier on a method or property that overrides a virtual method or property in a base class. This enables you to allow classes to derive from your class and prevent them from overriding specific virtual methods or properties.

覆盖:

The override modifier is required to extend or modify the abstract or virtual implementation of an inherited method, property, indexer, or event.

Sealed 表示它是给定 method/class 的 "end-of-the-hierarchy"。制作方法 virtual 只是说 "this is the default behavior, override me if you want different behavior"sealed 这意味着 "this cannot be overridden ever" 是一个悖论。

我不太确定你希望它做什么。

sealed关键字表示不能继承

You can also use the sealed modifier on a method or property that overrides a virtual method or property in a base class. This enables you to allow classes to derive from your class and prevent them from overriding specific virtual methods or properties.

virtual关键字意味着你可以。

The virtual keyword is used to modify a method, property, indexer, or event declaration and allow for it to be overridden in a derived class. For example, this method can be overridden by any class that inherits it:

我不确定你为什么需要或想要两者。

将其应用于 override 时,这是有道理的。这意味着 "you can't override this behavior," 并有效地否决方法上的前一个(相对于层次结构)virtual 关键字或 属性.

override sealed 是有效的,因为它说 "I'm overriding a base class method, but derived classes can't override me." 这是有道理的。其中一部分是在谈论与它的基地的关系class;另一个在谈论与派生 classes.

的关系

virtual sealed 会说 "You can override me (virtual) but you can't override me (sealed)." 这毫无意义。这两个修饰符是矛盾的适用于相同的关系