在 .Net 框架中,许多类都被标记为 "sealed",这意味着您无法使用自己的类继承这些类。这显然违反了面向对象编程的本质,即您可以扩展和重新定义现有对象的行为。
那么,'sealed' 关键字存在的好处是什么呢?
以 Silverlight 中的 NotifyCollectionChangedEventArgs 为例,它是被 sealed 的。我想创建一个支持 AddRange 和 RemoveRange 的 ObservableCollection 版本,但 Silverlight 版本的 NCCEA 不提供支持 NewItems 和 OldItems 属性的多个项的构造函数,这些属性已经定义为 ILists。通常,我会使用自己的变体扩展该类,覆盖 NewItems 和 OldItems 属性,但在这种情况下,我不能这样做,也看不出为什么会这样。
final
类修饰符。 - Austin_Anderson