zoukankan      html  css  js  c++  java
  • C# sealed关键字的使用

    一.前言

      sealed的中文意思就是密封。在C#中,sealed修饰符用在两个方面,一是修饰类,二是修饰方法。

    二.用法

    1.修饰类

      sealed应用于某个类后,可以阻止该类被其它类继承。如下面的示例,类B可以继承类A,但没有类可以继承类B。

    class A {}
    sealed class B : A {}

    2.修饰方法

      sealed应用于方法后,不影响当前类的继承关系。它能够防止当前这个已经重写的方法被其子类去重写替换,也就是说sealed必须是与override搭配使用,对应虚方法或抽象方法。在编译器对方法进行sealed修饰,也会看到必须搭配override的提示。

      下面是正确例子。

    public class A
    {
        public virtual void Func()
        {
            Console.WriteLine("A");
        }
    }
    
    public class B : A
    {
        public sealed override void Func()
        {
            Console.WriteLine("B");
        }
    }

      上面在类B中,用sealed修饰符给方法Func设置为密封方法,之后类B的派生类就不可能对该方法进行重写。

    public class C : B
    {
        public override void Func()//编译器提示是密封的,无法重写。
        {
            Console.WriteLine("C");
        }
    }

      实际场景:一般第三方类库中,很多类和方法都设置了密封,防止客户端对它进行继承或重写方法,造成结构混乱。使用sealed修饰符也可以提高运行效率,因为可以减少考虑继承类会重写的情况。

    三.总结

      1.sealed是用来密封的。

      2.密封类可以防止类被继承。

      3.密封方法可以防止方法被重写。

  • 相关阅读:
    poj 1013 Counterfeit Dollar
    poj百练2973:Skew数 进制问题
    poj百练2972 进制问题
    poj2080 Calendar
    POJ 1928 The Peanuts
    EXCEL打开CSV文件乱码的解决方法
    希望博客园做个软件职业生存状态调查问卷
    Linq使用Group By [转]
    ADO.NET 从DataTable中获取某列含有的不同值的几种方式
    本该遭拒的十大科技专利:苹果滑动解锁上榜[转]
  • 原文地址:https://www.cnblogs.com/shadoll/p/14475288.html
Copyright © 2011-2022 走看看