That was my immediate thought - this is closer to multiple inheritance, as it introduces the diamond problem: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Multiple_inheritance#The_diamond_problem" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Multiple_inheritance#The_diamo...</a> According to that page, Java forces programmers to resolve the ambiguity by making it a compiler error. A reasonable approach, I think.<p>I&#x27;ve done more OO development in C++, and I&#x27;ve found this technique useful - putting a default implementation in a class which was mostly an interface because only a small number of subclasses needed specialized behavior.