c#的sealed修饰符

看书时发现sealed可以阻止类被继承,但是sealed能否作用于方法或者属性呢?
答案是肯定的!
当sealed用来修饰方法时,只能对派生类使用,这个方法将重写基类的方法,但是该类的派生类将无法再次重写这个方法。
如果对基类使用,编译器将会报错

错误 1 因为“ConsoleApplication1.A.T()”不是重写,所以无法将其密封 ConsoleApplication1\ConsoleApplication1\Program.cs 12 27 ConsoleApplication1

而如下代码则是正确的

 class A
    {
       public virtual  void T()
        {
            Console.WriteLine("A");
        }
    }
    class Program: A
    {
        sealed public override void T()
        {
            Console.WriteLine("PPP");
            base.T();
        }
   }

参考文献:sealed

posted @ 2017-01-01 16:47  _吟游诗人  阅读(149)  评论(0编辑  收藏  举报