MYTH: Java doesn't support multiple inheritance.
This one is a huge Java myth: you can have multiple interface inheritance and THERE ISN'T A SINGLE THING THAT YOU COULD DO WITH CONCRETE IMPLEMENTATION INHERITANCE THAT YOU CANNOT DO TOO WITH INTERFACE INHERITANCE.
As a matter of fact some OO languages are "purely abstract" and support multiple inheritance.
As another matter of fact James Gosling himself said regretting not having gone "pure interface" with Java:
http://www.artima.com/intv/gosling13.html
And as the final matter of fact Bjarne Stroustrup said something similar regarding C++'s "pure abstract classes":
http://www.artima.com/intv/modern.html
Since then I have consistently pointed
out that one of the major ways of
writing classes in C++ is without any
state, that is, just an interface.
So I think that "Java doesn't support multiple inheritance" is one of the biggest myth about Java. Usually spread by people that don't understand neither OO nor delegation.
Note that the article by Gosling I linked to above talks exactly about this and it mentions delegation. Because this is what it's about.
Sadly a lot of not-so-knowledgeable programmers mistake "multiple implementation inheritance" (which Java doesn't support) with "multiple inheritance", which Java fully supports.
Same programmers are very confused about mutliple inheritance and mistake "inheritance" for "code reuse", which is of course rubbish.
And of course there isn't a single OOD using multiple inheritance that could not be translated to a Java OOP.
So you may disagree with me but then you'd be disagreeing with Bjarne Stroustrup and with James Gosling too and, anyway, it would be impossible for you to come up with a single OOA/OOD example using multiple inheritance that I could not translate to Java using multiple interface inheritance.