[swift-evolution] Final by default for classes and methods
stephen.celis at gmail.com
Mon Dec 7 13:28:08 CST 2015
On Mon, Dec 7, 2015 at 2:21 PM, Kevin Lundberg via swift-evolution <
swift-evolution at swift.org> wrote:
> I can appreciate the desire for this, but I would not support it
> personally. In a former life developing C# code where this is the default
> behavior, I wanted to extend a class's behavior to make it work slightly
> differently, but since everything is final by default (sealed in C#
> parlance) I was prevented from doing so. The scope of my change was minimal
> and well defined, and it would not have negatively impacted the extending
> class's normal behavior. The code I was extending was open source so i
> ended up having to copy and paste the class and its dependencies into my
> project to do what I wanted. If I couldn't have done that then I'm not sure
> what the right approach would have been.
> In short, it is not always possible to know ahead of time how your clients
> will want to extend your API's functionality; artificially limiting this in
> my opinion will make it much harder to reuse components in previously
> unforeseen ways.
Was subclassing always necessary for extending this functionality? Could
you accomplish the same using extensions?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution