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