什么可以成为阻止类继承的原因?(例如使用密封的ac#class)现在我想不出任何.
因为编写类可以被替代地扩展是非常困难的,并且需要您准确预测未来用户将如何扩展您所编写的内容.
密封你的类迫使他们使用更强大的组合.
如果您还不确定界面,并且根据当前界面不需要任何其他代码,那怎么样?[这不是我的头脑,但我也会对其他原因感兴趣!]
编辑:一些谷歌搜索给出了以下内容:http: //codebetter.com/blogs/patricksmacchia/archive/2008/01/05/rambling-on-the-sealed-keyword.aspx
引用:
密封类比未密封类更好的原因有三个:
版本控制:当一个类最初被密封时,它可以在将来更改为未密封而不会破坏兼容性.(......)
性能:(...)如果JIT编译器看到使用密封类型调用虚方法,JIT编译器可以通过非虚拟地调用该方法来生成更高效的代码.(...)
安全性和可预测性:一个类必须保护自己的状态,不允许自己被破坏.当一个类被解封时,如果内部操作字段的任何数据字段或方法是可访问的而不是私有的,派生类可以访问和操作基类的状态.(...)
我想从"代码完成"中给你这条消息:
继承 - 子类 - 倾向于违背您作为程序员的主要技术要求,即管理复杂性.为了控制复杂性,您应该保持对继承的严重偏见.