1,使用关键字sealed,声明的类不能继承,声明的方法不能重写。相当于Java中的final关键字。
2,定义如下
① 密封类的定义
② 密封方法的定义
3,密封类一般用于不希望第三方扩展类的情况下。.NET基类库就大量使用了密封类。比如string就是一个密封类。
在C#中,为了确保其他类不可以派生于某一类,可以使用sealed关键字密封该类,对某个类使用 sealed关键字作为前缀,这样可以防止其他类继承自该类,例如:
下面的语句将导致产生错误:
密封类中不能包含虚方法(Virtual)和抽象方法(abstract),因为在密封的类没有为派生类提供实现其虚方法和抽象方法的机会。
也可以使用密封方法,从而其他派生类不可以重写在当前类中提供的实现,如
为了防止Rectangle的派生类(如Square)修改Area()实现,可使用sealed 关键字作为该方法的前缀,如:
现在,如果尝试重写Square类中的Area()方法,会产生错误:
public class Square:Rectangle
{
///---Error:Area() is sealed in Rectangle class---
public override double Area()
{
///具体实现
}
}
就是
这些了,C#学习笔记之C#的密封类与密封方法,希望结大家有所帮助。