<div dir="ltr"><div dir="ltr">On Tue, Sep 22, 2020 at 11:06 AM claptrap via Digitalmars-d-learn <<a href="mailto:digitalmars-d-learn@puremagic.com">digitalmars-d-learn@puremagic.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
"Functions marked as final may not be overridden in a derived <br>
class, unless they are also private"<br>
<br>
So final private functions can be overriden? It seems not, but <br>
the sentence is definitely confusing if not just plain wrong.<br><br></blockquote><div>Yes they can, if you have class A in one module and class B in another module this will work:</div><div><br></div><div>//a.d</div><div>class A<br>{<br>    private final void overrideFun()<br>      {<br>             import std.stdio : writeln;<br>           writeln("A::overrideFun");<br>  }<br>}<br></div><div><br></div><div>//b.d</div><div>import a;<br>class B : A<br>{<br>   void overrideFun()<br>    {<br>             import std.stdio : writeln;<br>           writeln("B::overrideFun");<br>  }<br>}<br></div><div><br></div><div>// main.d</div><div>import b;<br><br>void main(string[] args)<br>{<br>        B b = new B;<br>  b.overrideFun;<br>}<br></div><div><br></div><div><br></div><div> </div></div></div>