<i>I expect that in a language that has such blessed, boilerplate-free delegation tools, inheritance will be less overused.</i><p>Delphi has support for delegation[1], but sadly not partial delegation.<p>However it doesn't seem like a big thing, compiler-wise, in a language like Delphi or C# to support partial delegation. You could then have one line saying that by default all calls are delegated to a given instance, a member/field or similar, and the compiler could then just automatically generate the forwarding calls for the methods you don't implement explicitly.<p>But wait... this is starting to smell a lot like inheritance! There the compiler automatically handles the delegation of the calls to the base class unless you override.<p>Of course there's still a big difference, in that typically inheritance is bidirectional while delegation is unidirectional.<p>[1]: <a href="https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_Implements_for_Delegation" rel="nofollow">https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_Im...</a>