密封类可以用来限制扩展性,如果密封了某个类,则其他类不可以从该类继承;如果密封了某个成员,则派生类不能重写该成员的实现。默认情况下,不应密封类型和成员。密封可以防止对库的类型和成员进行自定义,但也影响某些开发人员对可用性的认识。
C#中如果满足以下条件,则应将其密封:
1)
类是静态的;
2)
类包含带有安全敏感信息的继承的受保护成员;
3)
类继承多个虚成员,并且密封每个成员的开发和测试开销明显大于整个类;
4)
类是一个要求使用反射进行快速搜索的属性。密封属性可提高反射在检索属性时的性能。
C#中声明密封类时,需要使用sealed关键字,具体语法格式如下:
1: 访问修饰符 sealed class 类名: 基类或接口
2: {
3: //类成员
4: }