【发布时间】:2013-08-29 08:35:24
【问题描述】:
在程序员的一生中是否有任何意义来限制一个类来扩展这个类?
例如,我不希望 Package 扩展 Box。
【问题讨论】:
-
你是在问是否可以停止扩展盒子或停止扩展盒子的包裹,同时仍然允许其他东西扩展盒子?
-
停止包或任何类来扩展 Box
标签: restriction
在程序员的一生中是否有任何意义来限制一个类来扩展这个类?
例如,我不希望 Package 扩展 Box。
【问题讨论】:
标签: restriction
是的。在 Java 中,他们称之为 final 类。在 C# 中,他们称之为 sealed 类。
之所以这样做,是因为您无法始终预测使用者可能扩展您的类的多种方式,因此为了避免您必须设计您的类来考虑某人可能扩展它的所有可能方式,您只需密封它并要求使用者使用组合而不是继承。
【讨论】: