dbo:abstract
|
- Objektumorientált programozásnál az öröklődés mechanizmusa, hogy egy objektumot vagy egy alapjául választunk egy másik objektumnak (prototípus-alapú öröklődés) vagy osztálynak (osztály-alapú öröklődés), megtartva a hasonló implementációt. Más néven egy új osztályt (alosztályt) származtatunk egy már létező szuper- vagy alaposztályból, amiket aztán osztályok hierarchiájává formázunk. A legtöbb osztály-alapú objektum-orientált nyelvben egy öröklődésen keresztül létrehozott objektum a „gyermekobjektum” megkapja az ő „szülőobjektumának” minden tulajdonságát és viselkedését, leszámítva a konstruktorokat, destruktorokat, túlterhelt operátorait és barát függvényeit. Az öröklődés lehetővé teszi, hogy már létező osztályokra hozzunk létre újakat, ezzel annak egy új implementációját megalkotva úgy, hogy közben a viselkedését megtartja (interfész implementálása). Ez hasznos, mivel újrahasznosításra kerül a kód, emellett publikus osztályok és interfészek segítségével szabadon bővíthető marad az eredeti szoftver. Objektumok vagy osztályok közötti öröklődés által kialakult kapcsolatok jól szemléltethetők irányított gráfokkal. Az öröklődést 1969-ben találták fel a Simula nyelvhez, melyet azóta már számos egyéb objektum-orientált nyelv is felvett, például a Java, C++ vagy a Python. Egy öröklő osztály az alosztálya az ő szülő- vagy szuperosztályának. Az „öröklődés” kifejezést ritkábban szoktuk használni mind az osztály-alapú, mint a prototípus-alapú programozás esetében, azonban szigorúbban véve a kifejezés az osztály-alapú programozás szótárának része (egyik osztály örököl a másiktól). Ennek megfelelője a prototípus-alapú programozásban a delegáció (egyik osztály a másikhoz delegálódik). Az öröklődés nem összetévesztendő az altípusokkal. Bizonyos nyelvek esetén az öröklődés és altípusok megegyeznek, mások esetén nem; általánosságban elmondható, hogy az altípusok is-a kapcsolatban állnak, míg az öröklődés csak újrahasznosítja az implementációt és inkább szintaktikai kapcsolatot hoz létre, nem szükségszerűen szemantikait (az öröklődés nem feltétlen vonja magával a ). Hogy különbséget tehessünk ezen fogalmak közt, az altípusokat interfészöröklődésnek is szoktuk nevezni, míg az öröklődés, a jelen írt definíció szerint is implementációöröklődés vagy kód öröklődés. Ugyanakkor az öröklődés egy gyakran használt módja altípus kapcsolatok létrehozásának. Az öröklődést az objektum-összetétellel szokás szembe állítani, ahol egy objektum tartalmazza a másik objektumot (vagy egy osztályból származó objektum tartalmazza egy másik osztály objektumait); lásd: Öröklődés helyett objektum-összetétel. A kompozíció has-a kapcsolatot implementál, szemben az altípusok is-a kapcsolatával. (hu)
- Objektumorientált programozásnál az öröklődés mechanizmusa, hogy egy objektumot vagy egy alapjául választunk egy másik objektumnak (prototípus-alapú öröklődés) vagy osztálynak (osztály-alapú öröklődés), megtartva a hasonló implementációt. Más néven egy új osztályt (alosztályt) származtatunk egy már létező szuper- vagy alaposztályból, amiket aztán osztályok hierarchiájává formázunk. A legtöbb osztály-alapú objektum-orientált nyelvben egy öröklődésen keresztül létrehozott objektum a „gyermekobjektum” megkapja az ő „szülőobjektumának” minden tulajdonságát és viselkedését, leszámítva a konstruktorokat, destruktorokat, túlterhelt operátorait és barát függvényeit. Az öröklődés lehetővé teszi, hogy már létező osztályokra hozzunk létre újakat, ezzel annak egy új implementációját megalkotva úgy, hogy közben a viselkedését megtartja (interfész implementálása). Ez hasznos, mivel újrahasznosításra kerül a kód, emellett publikus osztályok és interfészek segítségével szabadon bővíthető marad az eredeti szoftver. Objektumok vagy osztályok közötti öröklődés által kialakult kapcsolatok jól szemléltethetők irányított gráfokkal. Az öröklődést 1969-ben találták fel a Simula nyelvhez, melyet azóta már számos egyéb objektum-orientált nyelv is felvett, például a Java, C++ vagy a Python. Egy öröklő osztály az alosztálya az ő szülő- vagy szuperosztályának. Az „öröklődés” kifejezést ritkábban szoktuk használni mind az osztály-alapú, mint a prototípus-alapú programozás esetében, azonban szigorúbban véve a kifejezés az osztály-alapú programozás szótárának része (egyik osztály örököl a másiktól). Ennek megfelelője a prototípus-alapú programozásban a delegáció (egyik osztály a másikhoz delegálódik). Az öröklődés nem összetévesztendő az altípusokkal. Bizonyos nyelvek esetén az öröklődés és altípusok megegyeznek, mások esetén nem; általánosságban elmondható, hogy az altípusok is-a kapcsolatban állnak, míg az öröklődés csak újrahasznosítja az implementációt és inkább szintaktikai kapcsolatot hoz létre, nem szükségszerűen szemantikait (az öröklődés nem feltétlen vonja magával a ). Hogy különbséget tehessünk ezen fogalmak közt, az altípusokat interfészöröklődésnek is szoktuk nevezni, míg az öröklődés, a jelen írt definíció szerint is implementációöröklődés vagy kód öröklődés. Ugyanakkor az öröklődés egy gyakran használt módja altípus kapcsolatok létrehozásának. Az öröklődést az objektum-összetétellel szokás szembe állítani, ahol egy objektum tartalmazza a másik objektumot (vagy egy osztályból származó objektum tartalmazza egy másik osztály objektumait); lásd: Öröklődés helyett objektum-összetétel. A kompozíció has-a kapcsolatot implementál, szemben az altípusok is-a kapcsolatával. (hu)
|