Gyakorlati alapok III.
Öröklődés (inheritance)
Az öröklődés lehetőségei a Javán belül, valamint tartalmi elemei
Az öröklődés elméleti ismertetését folytassuk tartalmi elemeinek összegzett felsorolásával:
-
alaposztály – base class – a legfelső osztály, belőle indul az osztályhierarchia, ne csodálkozzunk, ha abstract módosítószóval ellátott, ám ennek használata nem törvényszerű és nem kötelező (a Java API osztálykönyvtárban ez a legfelső osztály az Object, itt jegyezzük meg, hogy nem abstract),
-
ősosztály – ancestor class – az öröklődéshez felhasznált osztály, belőle származtatunk, nevezik szuperosztálynak is (super class),
-
utódosztály – descendant, derived class, extended class, subclass – az ősosztályból származtatott osztály.
Az öröklődés lehetőségei a Javán belül:
-
többszörös öröklődés tilalma: utódosztálynak nem lehet több ősosztálya (ez például C++-ban lehetséges),
-
1 osztályból több osztály is származtatható,
-
az osztályhierarchiából logikusan következik, hogy benne tetszőleges mennyiségű szint alakítható ki. Ez nem probléma például a biológiai rendszertanban, de programozás-technikailag adott szint felett garantált követhetetlenséget okoz. Ajánlott maximális származtatási szint 1 és 5 között.
-
Tranzitivitás – Ha B osztály örökli A osztály összes jellemzőjét és C osztály B leszármazottja, akkor C osztály A osztály összes jellemzőjét örökli, beleértve az osztály összes kapcsolatát is,
-
az ősosztály bármely metódusa felülírható az utódosztályban,
-
konstruktor függvény nem örökíthető, nem származtatható, azt az utódosztályban mindig külön meg írni, de hivatkozni rá lehetséges a super módosítószóval.