【转载】C#之密封类(sealed class)

C#之密封类(sealed class)

密封类

sealed 修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed 修饰符必须始终与 override一起使用。

可以使用密封来限制开发人员可以扩展您的框架的方式。如果密封了某个类,则其他类不能从该类继承。如果密封了某个成员,则派生类不能重写该成员的实现。默认情况下,不应密封类型和成员。密封可防止对库的类型和成员进行自定义,也会影响某些开发人员对可用性的认识。此外,使用面向对象的框架还有一个重要优点,即扩展性。如果所作决定不能体现出这一优点,请仔细权衡。

除非有充分的理由,否则不要密封类。

不要因为预见不到需要扩展某个类的情形,就认为将其密封起来是合适的。如果类满足如下条件,则应将其密封:

类是静态类。

类包含带有安全敏感信息的继承的受保护成员。

类继承多个虚成员,并且密封每个成员的开发和测试开销明显大于密封整个类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值