很多初学者都不明白,C#中为什么会有密封类?
其实我们知道C#语言是一种面向对象的语言,而继承是面向对象的主要特征之一,继承就是在类之间建立一种相交关系,使子类可以继承父类的一些特性,因此减少了代码的重复率。然而如果所有的类都可以被继承,继承会使类的层次结构体系变得十分庞大,类之间的关系杂乱无章,对类的理解和使用都会变得十分困难。因此有些时候我们就希望自己编写的类不被继承,或者有些类已经没有在被继承的必要。这个时候就将类定义成Sealed Class。
密封类在声明中使用sealed修饰符,这样就可以防止该类被其他类继承。因此密封类不可能有派生类。
using System;
public sealed class ParentClass
{
public ParentClass()
{
Console.WriteLine("父类构造函数");
}
public void SayHello()
{
Console.WriteLine("我是父类");
}
}
public class ChildClass:ParentClass//报错:无法从密封类型派生
{
}