【问题标题】:When to restrict a class from extending a class?什么时候限制一个类扩展一个类?
【发布时间】:2013-08-29 08:35:24
【问题描述】:

在程序员的一生中是否有任何意义来限制一个类来扩展这个类? 例如,我不希望 Package 扩展 Box

【问题讨论】:

  • 你是在问是否可以停止扩展盒子或停止扩展盒子的包裹,同时仍然允许其他东西扩展盒子?
  • 停止包或任何类来扩展 Box

标签: restriction


【解决方案1】:

是的。在 Java 中,他们称之为 final 类。在 C# 中,他们称之为 sealed 类。

之所以这样做,是因为您无法始终预测使用者可能扩展您的类的多种方式,因此为了避免您必须设计您的类来考虑某人可能扩展它的所有可能方式,您只需密封它并要求使用者使用组合而不是继承。

进一步阅读
Why Are So Many Of The Framework Classes Sealed?

【讨论】:

    猜你喜欢
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2020-10-05
    相关资源
    最近更新 更多