Om jag har förstått saken rätt, har de medvetet avstått från den möjligheten för att göra språket enkelt. Om man inte tänker sig för, går det att krångla till allt ganska ordentligt med multipelt arv.
Med multipelt arv kommer problem med ett allt för komplicerat språk med komplexa och ineffektiva implementationer utan att det egentligen tillför något av riktigt värde. Det var anledningen till varför det inte infördes i Java, ungefär som med operatoröverlagring, det är en snygg finess, men det orsakar långt mer problem och buggig/komplex kod än det ger fördelar.
I Java har du interfaces att tillgå, inte riktigt samma sak men de ger nästan lika mycket som multipelt arv utan att ha dess nackdelar.
[r] Tillägg:
En av de huvudsakliga designideérna med Java var att göra ett språk som tog fasta på alla bra saker i C++ men som rensade bort sånt som ofta orsakar problem, som t.ex multipelt arv.
Multipla arv och arv överhuvudtaget är lite överskattat.
Istället för att ärva en implementation så brukar jag använda mig av interfaces och i den klass som skulle varit en barn klass har jag istället en instans av base klassen som jag jobbar med.
Det kan ju tilläggas att funktionaliteten av ett multipelt arv i C++ är kompilatorberoende. Om det finns 2 funktioner med samma namn i de två klasserna man ärver från avgör kompilatorn vilken som ska gälla.
Interfacen i Java tvingar en att implementera dem rätt. Det är ju en av grundtankarna i Java att göra det hela plattformsoberoende, så det är ganska logiskt att det inte finns
En viktig aspekt i utformingen av Java var att se till att programmeraren inte kan göra fel. T.ex. ta bort pekarna och multipelt arv.
Genom att minska programvaru-felen så ökar programmerarnas effektivitet. Dvs det minskar tiden man behöver tillbringa med att försöka hitta komplicerade och krångliga buggar.