密封类可以用来限制扩展性,其他类不能继承密封类;如果密封了某个成员,则派生类不能重写该成员的实现。默认情况下,不应密封类型和成员。
语法
访问修饰符 sealed class 类名:基类或接口
{
}
由于密封类的不可继承性,因此密封类不能声明为抽象,即sealed修饰符不能与abstract修饰符同时使用。
密封方法只能用于对基类的虚方法进行实现,并提供具体的实现。所以声明密封方法时,sealed修饰符总是和override修饰符同时使用。
举例
public class myClass1
{
public virtual void Method()
{
Console.WriteLine("基类中的虚方法");
}
}
public sealed class myClass2:myClass1
{
public sealed override void Method()
{
base.Method();//调用基类中的Method方法
Console.WriteLine("密封类中重写后的方法");
}
}
密封类除了不能被继承外,与非密封类的用法大致相同,而密封方法则必须通过重写基类中的虚方法来实现。