Gyakorlati alapok III.

Öröklődés (inheritance)

 

Specializálódás – Általánosizálódás

 

Bevezetés

Általánosítás

Specializálódás

 

Bevezetés

 

A fenti 2. kifejezés természetesen csak szójáték, helyette általánosítást kell mondanunk, ez a hivatalos terminus technicus. Az előző fejezetben értesülhettünk az öröklődés előnyeiről. Ennek során, azaz új osztály öröklődéses létrehozásakor alapjában véve 2 irányt vehetünk fel:

  1. speciális tulajdonságokat általánosítunk (általánosítás),

  2. általános tulajdonságokat egyre konkrétabbakká teszünk, azaz specializálunk (specializálódás).

Általánosítás


Először beszéljünk általánosságban az általánosításról. Fő jellegzetessége, hogy ekkor egyedi tulajdonságot teszünk általánossá. Gyakran alkalmazzuk, ha hosszabb távú, sokszor globális következtetéseket szeretnénk levonni, sajnos sokszor okoskodó hangvétellel. Éppen ezért az általánosítás legtöbbször téves, egyszerűen nem igaz. Például:

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Programozás-technikailag:  az általánosítás során több osztályból kiemeljük a közös jellemzőket. Például:

 

Háromszög – Négyzet - Kör

Síkidom

Objektum

 

Az osztályok tervezésekor ez a megfelelő irány.

 

Specializálódás


Ennek során a lehető legáltalánosabb megközelítésből haladunk az egyre speciálisabb felé. Például:

 

Objektum

Síkidom

Háromszög – Négyzet - Kör

 

Az öröklődés implementációja szempontjából ez a megfelelő irány.


Mivel a legfelső szinten a lehető legáltalánosabb osztály van, egy logikusan felépített és jól továbbalakítható (osztály)hierarcha kialakítására van lehetőségünk, amelyet természetszerűleg a Java-API osztálykönyvtára már tartalmaz is. Igazából ez sem újdonság: ilyen, a specializálódás műveletét alkalmazó hierarchiák máshol is előfordulnak, például a biológiában:

 

www.informatika-programozas.hu