2.6. Öröklődés
Összetettebb programokban az osztályok hierarchikus rendszert alkotnak. Az öröklődés (inheritance) segítségével egy-egy osztályból alosztályokat képezhetünk, az így létrejövő új osztály örökli az ősosztálya (használatos még a szülőosztály vagy szuperosztály elnevezés is) összes tulajdonságát és műveleteit. A leszármazott osztály elemei emiatt reagálnak az ősben definiált metódushívásokra.(metódushívás: az osztály egy metódusában levő programkód elindítása). Az öröklődés során a leszármazott osztályok kiterjeszthetőek, új tulajdonságokkal (új változók, további eljárások) rendelkezhetnek. Példaként nézzük meg a következő ábrán lévő szerkezetet:
7. ábra
öröklődés
A definíciók a következők lehetnek:
osztály: gépjármű
ősosztálya: [nincsen]
tulajdonságok: gyártás_éve
lökettérfogat
alvázszám
...
metódusok: ...
osztály: személygépkocsi
ősosztálya: gépjármű
tulajdonságok: kerekek_száma = 4
legnagyobb_sebesség
szín
ár
...
metódusok: beindít
leállít
...
osztály: BMW
ősosztálya: személygépkocsi
tulajdonságok: felszerelés
...
metódusok: ablakmozgatás...
Az én BMW-m objektum a new konstrukciós eljárás hatására a BMW osztályból a gyártás éve, ár, szín ..., felszerelés paraméterekkel jön létre, örökli a rangsorban meghatározott metódusokat, mint pl. a beindít, leállít, stb.
Az osztályok öröklik a ősosztályok tulajdonságait, így azokat az osztályoknál nem kell megismételni. Csak azokat a tulajdonságokat kell megadni, amelyek az alosztályra jellemzőek. A példában a szín a gépjárművek osztályban nem annyira lényeges, de a személygépkocsi osztályban igen.
A meghatározás megadható úgy is, hogy egy változónak értéket adnak. Az osztályváltozó ezután az összes alosztályban érvényes lesz, hacsak az alosztályban nem írják azt felül új értékkel. A személygépkocsi osztályban a kerekek száma = 4 azt jelenti, hogy gyártótól, típustól függetlenül az összes személygépkocsinak 4 kereke van.
Emellett szinte minden objektum-orientált programozási rendszerben létezik az összes osztályrangsor fölé rendelt ősosztály, amit object-nek neveznek. Minden meghatározott osztályrangsor gyökere az objekt egy példánya. A object-nek is vannak tulajdonságai, metódusai (pl. típus, karakteres formává alakítás, stb)