以下代码段有效

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?这篇文章。因此,我遵循作者的指示。突然,我尝试在基类中扮演“封印”的概念。这就是为什么我想到了这个问题。

最佳答案

override sealed是有效的,因为它说“我正在重写基类方法,但是派生类不能重写我”。那讲得通。它的一部分是谈论与其基类的关系。另一个正在谈论与派生类的关系。

virtual sealed会说“您可以覆盖我(virtual),但是不能覆盖我(sealed)。”这是没有意义的。这两个修饰语是矛盾的,并且适用于相同的关系。

10-08 08:31