Although such ambiguity is one argument against multiple inheritance, it does not make it impossible. Other languages have multiple inheritance, and get around the ambiguity issue by various means.
I believe that the true reason Java does not have multiple inheritance is that it makes things simpler. JVMs and compilers are simpler to write, may be smaller and may run faster. Single inheritance source code is also usually easier to understand and to maintain, though that may not always be the case: if a problem lends itself to an obvious solution by multiple inheritance, which has to be "kludged" in a single-inheritance language, for example.
Betty Rubble? Well, I would go with Betty... but I'd be thinking of Wilma.
To understand why Java doesn't support multiple inheritance, you should look at how Java got its start.
James Gosling was leading a programming project at Sun Microsystems using C++ and found that his team was spending as much time dealing with the complexities of the language as they were writing programs.
He decided to design a new C family language that, among other things, eliminated the language features that were difficult to understand and apply to real programs. Selecting the correct C++ function to dispatch with multiple inheritance has rules bordering on the metaphysical. Since we can't all be as smart as C++ inventor Bjarne Stroustrup, Gosling substituted multiple implemented interfaces, where the issue of choosing between method implementations never arises.
It's important to remember that programming languages were designed by real people with specific goals. No one language is right for every purpose. By understanding the design objectives of different languages, you are better equipped to choose the best one for your project.
SCJP 1.4, SCWCD in process
Oh. Hi guys! Look at this tiny ad:
professionally read, modify and write PDF files from Java