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.密封方法可以防止方法被重写。

  • 相关阅读:
    纪念这一天,我找到了实习工作
    在编程的道路上坚定地走下去
    今天是1024程序员节
    趣谈函数调用与返回值
    为期3个月的实训结束了,有感而发
    学习编程时遇到难点怎么办?
    今天学习了安卓中的UI线程
    Java程序员要掌握的常用快捷键
    我是一个注重基础的人
    我也有自己的小家啦
  • 原文地址:https://www.cnblogs.com/shadoll/p/14475288.html
Copyright © 2011-2022 走看看