Gyakorlati alapok III.
Öröklődés (inheritance)
Kérdés – Öröklődik-e az összes függvénnyel együtt a konstruktor függvény is?
A tanítványi kérdés valójában kissé másképpen hangzott el, a választ a tanítvány meg is próbálta előlegezni egy igen válasszal. Felvetése azonban alapjában véve pontatlan, ugyanis összetévesztette a konstruktor függvényt (Rombolás helyett építkezés: a new parancs és a konstruktor függvény című fejezet) és az őt létrehozó öröklődési mechanizmust. A pontos válasz tehát:
A konstruktor függvény nem öröklődik, az kizárólag a saját osztályhoz tartozik, ám az öröklődés során a konstruktor függvényt létrehozó mechanizmus szintén öröklődik.
Ez kétféle módon érhető el:
-
vagy a JVM gondoskodik erről,
-
vagy ezen képességet maga a függvény kapja meg.
Nagy valószínűséggel az 1. lehetőség történik, tehát erről a JVM gondoskodik.
A szülőosztály konstruktorát pedig -ahogy azt már tanultuk az Örököltetés: síkidom - kör - négyzet - téglalap a super() segítségével című fejezetben-, a super() kulcsszóval szólíthatjuk meg.