Kada iz klase Zivotinja nasledis klasu Macka, postigao si da sve osobine koje mogu pokazivati zivotinje u globalu, automatski postaju i osobine macke, pa tebi ostaje da se u klasi Macka bavis samo specificnostima same macke. Ako si istovremeno i paralelno razvijao klase koje opisuju kvalitet dlake kod zivih bica, mozda si se nasao u situaciji da imas klase Kratkodlaki, Dugodlaki, Celavi...
Polimorfizam je kada ti svoju Macku nasledis i iz klase Zivotinja i iz klase Kratkodlaka. Sada se u samoj klasi Macka ne moras baviti ni dlakom macke, kao sto si ranije postigao i sa zivotinjskim osobinama.
Nadam se da primer nije potpuno nerazumljiv, a ako jeste - reci, nije mi tesko da smislim i nesto blize zdravom razumu ;)
Kod visestrukog nasledjivanja treba paziti na membere koji se na neki nacin definisu i u jednoj i u drugoj klasi iz koje se nasledjuje, na problem konstruktora (ako postoji problem sa redosledom pozivanja) i sa preklopljenim metodama.
Ako zelis dublje da udjes u pricu, dacu ti neke linkove ili meni karakteristicno baljezganje sa mackama i psima :), mada ni pametniji autori nemaju mnogo srecnije paralele...
Na kraju samo da znas da vecina objektno orjentisanih jezika krece od pretpostavke da visestruko nasledjivanje uopste nije potrebno i da se svi takvi problemi mogu resiti i na nacin koji nije toliko podlozan greskama. Ovo nije kompletna istina, ali ostaje cinjenica da to resenje nije idealno i da ostavlja mogucnost zavlacenja gresaka koje se tesko pronalaze... Neces biti mnogo hendikepiran ukoliko ovu temu naucis samo informativno, a u praksi je potpuno izbegnes. S druge strane, mnogi C++ programeri povlace ovaj argument da bi dokazali Java programerima koliko je njihov jezik nadmocan...
De si Deda...