<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="">I would just like to voice my support for the current proposal and apologize in advance if this has already been adressed but the restriction on superclasses having to also be open is something I find awkward to say the least. To me it just seems that by doing so the issue of avoiding subclassing of a class that simply shouldn’t be subclassed gets a bit moot.<div class=""><br class=""></div><div class="">As the current proposal states: "<span style="color: rgb(51, 51, 51); font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; line-height: 24px; widows: 1; background-color: rgb(255, 255, 255);" class="">These are conservative restrictions that reduce the scope of this proposal; it will be possible to revisit them in a later proposal.”</span></div><div class=""><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">I’m not sure if allowing a superclass to not have to be open would increase the scope by that much, although I understand this isn’t necessarily the case.</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">Just to make sure I got everything right, as it stands this would be possible:</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">/// Module A</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">public open class SomeSuperClass {</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""> // Unsuitable for subclassing</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">}</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">public open class SomeClass: SomeSuperClass {</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>// Suitable for subclassing</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">}</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">/// Module B</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">class SubClass: SomeSuperClass {</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>/// </span>…</font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">}</span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div style="widows: 1;" class=""><font color="#333333" class=""><span style="background-color: rgb(255, 255, 255);" class="">Even though the point of subclassing should be SomeClass there’s really nothing preventing the caller from subclassing the SomeSuperClass which is unsuitable for it.</span></font></div><div class=""><br class=""></div></div><div class="">- Davor</div></body></html>