sealed关键字用于禁止继承或重写,提升安全性、稳定性和可预测性;密封类不可被继承,密封方法需与override连用以锁定重写,结构体默认密封。
在 C# 中,sealed 关键字用来明确禁止继承或进一步重写,核心作用是增强代码的**安全性、稳定性和可预测性**。它不是“锦上添花”的修饰符,而是在设计阶段就该考虑的约束手段。
用 sealed 修饰类,表示这个类是继承链的终点

: MyClass 的方式派生它。
public sealed class Logger { ... }
class FileLogger : Logger { } → 错误 CS0509:“FileLogger”无法从密封类“Logger”继承当一个类需要支持继承,但其中某个已重写的虚方法必须“定型”,不能再被子类改动时,就用 sealed override。
override 同时出现,不能单独使用 sealed 修饰新方法public sealed override void Save() { ... } —— 派生类可以继承该类,但不能再覆盖 Save 方法struct)默认就是 sealed,所以不用、也不能加 sealed 修饰它的价值不止于限制,还带来实际收益:
virtual 和 abstract 形成互补:不是所有方法都要开放重写,也不是所有类都要支持扩展基本上就这些。sealed 不复杂,但容易忽略——它不是防御性编程的补丁,而是面向对象设计中“明确边界”的一种主动选择。