<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div>oh, cool - discussion ;-)</div><div><br class=""><blockquote type="cite" class=""><div class=""><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">However, any Swift application is necessarily going to have a lot of classes as the Cocoa frameworks require apps to subclass framework classes in many instances. &nbsp;Even when we are not required to<span class="Apple-converted-space">&nbsp;</span><i class="">subclass</i>&nbsp;a framework class they often require our types to be a class, for example when we are providing a delegate to a Cocoa class. &nbsp;These requirements of the frameworks result in<span class="Apple-converted-space">&nbsp;</span><i class="">a lot</i>&nbsp;of classes in Swift applications that are not ever intended to be subclassed.</div></div></blockquote><div>So you'd vote for making non-final the default again as soon as the "Cocoa-legacy" is gone?</div><br class=""><blockquote type="cite" class=""><div class=""><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">You ask why I don’t think `inheritable` should be the default. &nbsp;I believe I have addressed that by making a case that it is<span class="Apple-converted-space">&nbsp;</span><b class="">less clear</b>&nbsp;and<span class="Apple-converted-space">&nbsp;</span><b class="">less safe</b>&nbsp;as a default.</div></div></blockquote>Sorry if he overlooked something, but I thought the arguments were against the current default…</div><div>What exactly compromises safety when a subclass is allowed to monitor usage of its inherited methods?</div><div>True, when a method is overwritten, the base class might lose something it relies on; but when this can't happen, can you point out an example where this behavior causes danger (damn, I actually know one, but you have to tell first ;-).</div><div><br class=""></div><div>Tino</div></body></html>