Gyakorlati alapok III.
Öröklődés (inheritance)
Sokan álmodoznak arról, hogy
dollármilliókat örökölnek az amerikai nagybácsitól, elfelejtvén azon jogi
tényt, miszerint lehetséges adósságot is örökölnünk. Az öröklésnek tehát
(továbbiakban öröklődés, programozás-technikailag a 2 szó között nincs
különbség) egyaránt van jó és rossz oldala és ez a programozásban sincs
másképpen, feltéve persze, hogy a programozási nyelv tartalmazza az öröklődés
lehetőségét. A Java nyelvben –amint a hozzá hasonló nyelvekben-, öröklődés
osztályok között lehetséges. De mit is jelent ez?
Az elsődleges cél egy már megírt és jól bevált kód újrafelhasználása. Ha
jobban belegondolunk, voltaképpen ezt tesszük az API összes beimportált
osztályával, azaz az import paranccsal a kódba csatlakoztatva mindegyiket
szabadon felhasználhatjuk. De akkor mi a különbség az import és az öröklődés (inheritance)
között?
Az öröklődés esetében nemcsak kód-újrafelhasználás történik, hanem szeretnénk
saját igényeink szerint át is alakítani, továbbfejleszteni. Ezt nagyjából a már említett osztály
= tervrajz hasonlattal képzelhetjük el: az osztályok valóban csak tervrajzok.
A tervrajz legtöbb részletével egyetérthetünk, ám lehet olyan részlete, amelyet egy ház építése során mégis kissé átszabnánk. Pontosan erre való az öröklődés, éppen ezért a műveletnek nincs sok értelme, ha nem kívánunk a kódon változtatni. Később látni fogjuk, hogy sok helyen, de főként az AWT és Swing ablakozós programtechnikáinál válik kiemelten hasznossá, mert előre megírt kódok egész tömegét csatlakoztathatjuk saját kódunkba, amit aztán viszonylag könnyen alakíthatunk át igényeink szerint.