【c#】c# 中如何让指定类不能被继承?

有时候我们并不希望自己写的类被继承,怎么做呢?

方法很简单,只需要在定义类时加上 sealed 关键字,用 sealed 关键字声明的类也叫密封类,如下代码

    public sealed class Room
    {
        
    }

强制派生会有什么错误呢?如下截图
【c#】c# 中如何让指定类不能被继承?_第1张图片
Room 被定义为密封类,因此现在已经无法从 Room 类派生。

如果只是想阻止基类中的虚成员被覆写,并不打算阻止整个类被继承,其实方法与密封类相同,在定义虚成员时加上 sealed 关键字即可,如下代码所示

    public class Car
     {
         protected virtual void Run()
         {
             
         }
     }
    
    public class MyCar : Car
    {
        protected sealed override void Run()
        {
            base.Run();
        }
    }

Car 类中定义了虚方法 Run , MyCar 类继承 Car 类,并覆写 Run 方法,同时使用 sealed 关键字,使得再继承 MyCar 类的子类,不能再覆写 Run 方法。

这里我写一个 OtherCar 类并继承 MyCar 类,然后强制覆写 Run 方法,会如何呢?如下截图所示
【c#】c# 中如何让指定类不能被继承?_第2张图片
注:这里我将成员声明为 protected ,只允许当前类和派生类访问,其它外部对象无法访问。


结束语

如果这篇博客有幸帮到了您,欢迎点击下方链接,和更多志同道合的伙伴一起交流,一起进步。

Web开发者俱乐部

你可能感兴趣的:(C#,C#)