与抽象类相反,在实际编程过程中,有的类已经没有在被继承的必要了。针对这种情况,C#提出了一个密封类的概念。密封类的声明使用sealed关键字,可以防止非有意的派生。如果视图将一个密封类作为基类,C#将提示出错。并且,密封类不能同时是抽象类,因为抽象类是希望被继承的。由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。当sealed关键字修饰方法或属性时,sealed必须与override一起使用.
由于结构是隐式密封的,因此他们不能被继承。
sealed class SealedClass
{
public int x;
public int y;
}
class Program
{
static void Main(string[] args)
{
//密封类的使用
SealedClass sc=new SealedClass();
sc.x=110;
sc.y=110;
Console.Writeline("x={0},y={1}",sc.x,sc.y);
}
}
输出的结果为 x=110,y=110