- Az öröklés jellemzői
- Hierarchia
- polimorfizmus
- Az öröklés típusai
- Egyedi öröklés
- Többszintű öröklés
- Hierarchikus öröklés
- Hibrid öröklés
- Többszörös öröklés
- Az öröklés típusai alaposztályból
- Nyilvános örökség
- Védett örökség
- Magán örökség
- Példák
- Python példa
- Példa a C ++-ban
- Irodalom
Az öröklés az objektum-orientált programozásban az objektumok hierarchiájában az általános és a konkrét közötti hierarchiájában történő rendezésének egyik módja. Ez az eszköz egy osztály másik osztályba történő kiterjesztésére szolgál, megőrizve egy hasonló végrehajtást.
A legtöbb osztályalapú objektum-orientált nyelvben az öröklés útján létrehozott objektum, amelyet gyermekobjektumnak hívnak, megkapja a szülőobjektum összes tulajdonságát és viselkedését.
Az öröklés egyszerű igazolása tárgyorientációban. Forrás: Pluke / CC0 Creative Commons CC0 1.0 Universal Public Domain
Ezért ez egy olyan minőség, amely képviseli a különböző osztályok közötti kapcsolatot. Az öröklés lehetővé teszi az osztály számára, hogy ugyanazzal a viselkedéssel járjon, mint egy másik osztály, és kibővítse vagy adaptálja ezt a viselkedést, hogy különleges fellépést biztosítson az egyedi igényekhez.
Az öröklődés segíthet olyan objektumok ábrázolásában, amelyek működési módjukban vannak bizonyos különbségek és hasonlóságok. Az objektumok összes funkcióját egy alaposztályba helyezheti, majd egy vagy több alosztályt meghatározhat a saját egyedi funkcióival.
Az öröklés jellemzői
Az öröklés az objektum-orientált programozás egyik fő jellemzője, amelyet egy új osztály meghatározására használnak a meglévő osztályokból.
Vagyis új osztályok származtathatók a meglévő bázisosztályokból, új funkciók hozzáadásával. Nem kell írni a semmiből. Ezért az öröklés lehetővé teszi a meglévő kód egyszerű újrafelhasználását.
Ha már van olyan osztály, amely szinte mindent megtesz, amit akar, akkor létrehozhat egy alosztályt, amelyben bizonyos viselkedése részben felülbírálásra kerül, vagy esetleg új funkciókat ad hozzá.
A származtatott osztály az alap osztály összes módszerét örökli, kivéve a következőket:
- Az alaposztály kivitelezői, destruktorai és másoló konstruktorjai.
- Az alaposztályból túlterhelt operátorok.
- Alap osztály barátságos funkciók.
Hierarchia
Mint a családfa, az öröklés az osztályok hierarchiájának kialakítását szolgálja. Fontos megjegyezni, hogy az alaposztály számára meghatározott attribútumok automatikusan jelen lesznek a származtatott osztályban. Az alaposztály módszerei szintén működnek a származékoknál.
Azt mondják, hogy egy osztály annak az osztálynak az alosztálya, amelytől örököl. Másrészt ez az osztály lesz a szuperosztálya. A legáltalánosabb osztályt alapcsoportnak lehet nevezni, mivel ez a hierarchia alapja.
polimorfizmus
Az öröklés nagyon népszerű néhány statikus típusú nyelven, mert lehetővé teszi a programozónak, hogy elkerülje a statikus típus korlátozásait.
Egy másik objektumtól örökölt tárgyat az adott objektum altípusának kell tekinteni. Példa lehet az „oktató” és a „tanuló” objektumok, amelyek mindegyike a „személy” -től származik.
Ha az oktató és a hallgató ugyanazon személytípus, akkor írhat egy olyan funkciót, amely elfogadja a személytípust paraméterként, és amely az oktató és a hallgatói objektumokon működik, mivel mindkettő személy örököse.
Az öröklés típusai
Egyedi öröklés
Amikor egy származtatott osztály örököli egyetlen bázis osztály tulajdonságait és viselkedését. Vagyis az egyik osztály csak egy másik osztályra terjed ki.
Többszintű öröklés
Arra a modulra vonatkozik, ahol örökölhet egy származtatott osztálytól, ezáltal a származtatott osztályt új osztály alap osztályává téve. Vagyis akkor származik eredményről, ha egy származtatott osztályt hozunk létre egy másik származtatott osztályból.
Hierarchikus öröklés
Ebben az öröklésben sok alkategória egyetlen osztálytól örököl. Vagyis akkor fordul elő, amikor egy alaposztályt egynél több származtatott osztály örököl.
Hibrid öröklés
Ez az eredő öröklés, ha a három korábbi öröklés bármelyikét kombináljuk (egy, hierarchikus és többszintű).
Többszörös öröklés
Az öröklési számnak felel meg, ha egy osztály egynél több szuperosztálytól örököl. Az ilyen típusú öröklés hátránya, hogy a származtatott osztálynak kezelnie kell a két alaposztálytól való függőséget.
Másrészről, az ilyen típusú öröklés lehetővé teszi a programozók számára osztályok felépítését, amelyek kombinálják a több osztály szempontjait és a hozzájuk tartozó hierarchiákat.
Az öröklés típusai alaposztályból
Nyilvános örökség
Amikor egy osztályt egy nyilvános alaposztályból származtatnak, akkor az alaposztály nyilvános tagjai a származtatott osztály nyilvános tagjaivá válnak, és az alaposztály védett tagjai a származtatott osztály védett tagjaivá válnak.
A szuperosztály magántagjai soha nem lesznek elérhetők közvetlenül egy származtatott osztályból, de hozzáférhetők az alaposztály nyilvános és védett tagjai számára.
Védett örökség
Amikor létrehoztunk egy osztályt, amely egy védett szuperosztálytól örököl, a szuperosztály nyilvános és védett tagjai egyaránt a származtatott osztály védett tagjaivá válnak.
Magán örökség
Ha egy alosztályt hoz létre egy magán szuperosztályból, akkor a szuperosztály nyilvános és védett tagjai az alosztály privát tagjaivá válnak.
Példák
Python példa
Hogy megmutassuk, hogyan működik az öröklés elve, robotokat vagy egy jobb osztályú robotot veszünk a Python programozási nyelven. Ehhez egy RobotMédico (PhysicianRobot) nevű osztályt kell megadni, amelyet a Robot szuperosztályból származtatnak.
Ha megnézi a RobotMédico osztály kódját, láthatja, hogy ebben az osztályban nincs meghatározva attribútum vagy módszer.
Mivel a RobotMedico osztály a Robot alosztálya, örökli mind a __init__, mind a say_hi módszert. Ezeknek a módszereknek az öröklése azt jelenti, hogy úgy használhatók, mintha a RobotMédico osztályban meghatározták volna.
A RobotMedico példányának létrehozásakor az __init__ függvény egy attribútumot is létrehoz. A say_hi módszer alkalmazható a RobotMédico „y” objektumára, amint az az előző kód eredményéből is látható.
Példa a C ++-ban
Az osztály egynél több osztálytól örökölhet, ami azt jelenti, hogy az adatokat és a funkciókat több szuperosztálytól is örökölheti. A származtatott osztály meghatározásához az osztály származtatási listát használja az alap osztályok meghatározásához.
A C ++ osztályok származtatási listája egy vagy több alaposztályt nevez, és a következő formában van: osztály származtatott osztály: hozzáférés-specifikátor alap-osztály, ahol a hozzáférés-meghatározó nyilvános, védett vagy magán, és az alaposztály egy korábban meghatározott osztály neve. Ha a hozzáférés-meghatározót nem használja, akkor alapértelmezés szerint a magántulajdonba kerül.
A "Shape" szuperosztályt és az abból származtatott "Téglalap" osztályt a következőképpen lehet figyelembe venni:
A fenti kód lefordítása és végrehajtása után a következő kimenet fordul elő: "Teljes terület: 35".
Irodalom
- Dave Braunschweig (2020). Öröklés és polimorfizmus. Rebus közösség. Forrás: press.rebus.community.
- Python pálya (2020). Öröklés. Forrás: python-course.eu.
- Data Mentor (2020). R Öröklés. Forrás: datamentor.io.
- Oktató pontok (2020). C ++ Öröklés. Forrás: tutorialspoint.com.
- Nettó információk (2020). Az öröklés különféle típusai. Forrás: net-informations.com.