Jelenlegi hely

12. Öröklődés

A java.lang csomagban definiált Object osztály meghatározza és megvalósítja azokat a metódusokat, amelyek minden osztály számára szükségesek. A következő ábrán látható, hogy sok osztály ered az Object-ből, majd sok további osztály származik az előbbi osztályokból, és így tovább, létrehozva ezzel az osztályok hierarchiáját.

Object leszármazottak

A hierarchia csúcsán álló Object az osztályok legáltalánosabbja. A hierarchia alján található osztályok sokkal specializáltabb viselkedést eredményeznek. Egy leszármazott osztály valamely osztályból származik. A superclass kifejezés (továbbiakban szülőosztály vagy ősosztály) egy osztály közvetlen ősére/elődjére, vagy annak bármely felmenő osztályára utal. Minden osztálynak csak és kizárólag egyetlen közvetlen szülőosztálya van.

Egy leszármazott osztály a változóit és metódusait a szülőosztályától örökli. A leszármazott osztály számára azonban lehet, hogy nem elérhető egy öröklött változó vagy függvény. Például, egy leszármazott osztály számára nem érhető el egy private tag, ami a felsőbb osztálytól öröklődött. Mondhatnánk persze, hogy akkor az a tag egyáltalán nem is öröklődött. De igenis öröklődött. Akkor válik ez fontossá, amikor egy olyan belső osztályt használunk, aminek van hozzáférése a mellékelt osztályok private tagjaihoz. Ne feledjük, hogy a konstruktorok nem metódusok, tehát az leszármazott osztályok nem örökölhetik azokat.