This is a part of the inheritance schema from the BMM, the part with the three classes which have multiple inheritance in pink, and on the right and left where they inherit from, left are interfaces because that is a Java-trick to do multiple inheritance.
But the trick is not good enough, especially in Spring, and calling superclasses to return subclasses, there are problems. So this brought me to thinking.
I understand one purpose to do inheritance is to avoid code-repetition, but there other ways to avoid that.
I think the real good reason to do inheritance is, that when there is a IS-A relation between classes.
The other way to avoid code-repetition is to detect a HAS-A relation. In that case, a class to inherit from can also be a property instead of a superclass.
I think that the pink-classes have an IS-A relation with the blue/green classes, and that the relation with the orange interfaces can also be seen as a HAS-A relation.
In that case, multiple inheritance is no longer necessary in this model.
I would appreciate if you would consider such a change.
Thanks very much for thinking it over
Bert