Kľúčový rozdiel – viacnásobná verzus viacúrovňová dedičnosť
Object-Oriented Programming (OOP) je paradigma na navrhovanie programu pomocou tried a metód. Scenáre reálneho sveta je možné mapovať na objekty. Preto je jednoduché vytvárať softvérové riešenia. Trieda je plán na zostavenie objektu. Obsahuje vlastnosti a metódy. Napríklad pred vytvorením objektu študent by mal existovať študent triedy s vlastnosťami a metódami. Študent môže mať vlastnosti, ako je ID študenta, meno a metódy ako čítanie, písanie, štúdium. Metódy popisujú správanie, zatiaľ čo vlastnosti sú atribúty. Po vytvorení triedy je možné pomocou nich vytvárať objekty. Vytváranie objektov je tiež známe ako objektová inštancia. Objekt neexistuje izolovane. Komunikujú s inými objektmi a údaje sa odovzdávajú v rámci objektov. Jedným z pilierov OOP je dedičnosť. Účelom dedičnosti je zvýšiť znovupoužiteľnosť kódu. Vytvára novú triedu vlastností a metód už existujúcej triedy. Existujúca trieda je známa ako základná trieda a nová trieda sa nazýva odvodená trieda. Viacnásobná dedičnosť a viacúrovňová dedičnosť sú typy dedičnosti. Tento článok sa zaoberá rozdielom medzi nimi. Kľúčový rozdiel medzi viacnásobnou a viacúrovňovou dedičnosťou je v tom, že viacnásobné dedičstvo je, keď trieda dedí z mnohých základných tried, zatiaľ čo viacúrovňové dedičstvo je, keď trieda dedí z odvodenej triedy, čím sa táto odvodená trieda stáva základnou triedou pre novú triedu.
Čo je viacnásobné dedičstvo?
Viacnásobná dedičnosť je, keď trieda zdedí viac ako jednu základnú triedu.
Obrázok 01: Viacnásobné dedičstvo
A B a C sú triedy. A a B sú základné triedy a C je odvodená trieda. Trieda C musí zvládnuť závislosť oboch základných tried A a B. Viacnásobná dedičnosť sa v softvérových projektoch veľmi nepoužíva. Vďaka tomu je systém zložitejší, pretože jedna trieda dedí veľa tried.
Predpokladajme napríklad, že trieda A aj B majú metódu s rovnakým názvom, ktorým je sum() a trieda C odvodzuje obe triedy. Po vytvorení objektu typu C a volaní metódy sum () môže spôsobiť chybu, pretože obe triedy majú rovnakú metódu. Kompilátor nevie, ktorú funkciu má volať. Preto viacnásobná dedičnosť zvyšuje zložitosť systému. Viacnásobná dedičnosť je podporovaná v jazyku C++, ale jazyky ako Java, C nepodporujú viacnásobnú dedičnosť. Namiesto toho tieto jazyky používajú rozhranie, ktoré je podobné triede, ale nemožno ho vytvoriť.
Čo je viacúrovňová dedičnosť?
Viacúrovňová dedičnosť je, keď trieda dedí z odvodenej triedy, čím sa táto odvodená trieda stáva základnou triedou pre novú triedu.
Obrázok 02: Viacúrovňové dedičstvo
Viacúrovňové dedičstvo má tri úrovne. Stredná trieda, ktorú B dedí z triedy A a trieda C dedí z triedy B. A je základná trieda pre B a B je základná trieda pre C.
Program, ktorý implementuje viacúrovňové dedičstvo, je nasledujúci. Program je napísaný v jazyku Java.
Obrázok 03: Program, ktorý implementuje viacúrovňové dedičstvo
Podľa vyššie uvedeného programu je trieda A základnou triedou pre triedu B. Trieda B je základnou triedou pre triedu C. Všetky vlastnosti a metódy triedy A sú prístupné triede B. Všetky vlastnosti a metódy triedy B je prístupný triedou C. Preto trieda C môže pristupovať k vlastnostiam a metódam A aj B. Pri vytváraní objektu typu C je možné volať všetky tri metódy A (), B () a C (). Výstup bude A, B, C.
Aká je podobnosť medzi viacnásobným a viacúrovňovým dedičstvom?
Obaja sú typy dedičstva
Aký je rozdiel medzi viacnásobným a viacúrovňovým dedením?
Viacnásobná dedičnosť verzus viacúrovňová dedičnosť |
|
Viacnásobné dedenie je typ dedenia, pri ktorom trieda dedí z viac ako jednej základnej triedy. | Viacúrovňová dedičnosť je typ dedičnosti, ktorý dedí z odvodenej triedy, čím sa táto odvodená trieda stáva základnou triedou pre novú triedu. |
Použitie | |
Viacnásobná dedičnosť sa veľmi nepoužíva, pretože robí systém zložitejším. | Viacúrovňová dedičnosť je široko používaná. |
Úrovne tried | |
Viacnásobná dedičnosť má dve úrovne triedy, a to základnú triedu a odvodenú triedu. | Viacúrovňová dedičnosť má tri úrovne tried, a to základnú triedu, strednú triedu a odvodenú triedu. |
Súhrn – Viacnásobné verzus viacúrovňové dedičstvo
Dedičnosť je hlavným pilierom objektovo orientovaného programovania. Existujú rôzne typy dedičstva; sú to jednoúrovňové dedičstvo, viacúrovňové dedičstvo, viacnásobné dedičstvo, hierarchické dedičstvo a hybridné dedičstvo. Jednoúrovňová dedičnosť má jednu základnú triedu a jednu odvodenú triedu. Hierarchická dedičnosť má jednu základnú triedu a mnoho odvodených tried. Hybridná dedičnosť je kombináciou viacúrovňovej a viacnásobnej dedičnosti. Tento článok popisuje rozdiel medzi viacnásobnou dedičnosťou a viacúrovňovou dedičnosťou. Rozdiel medzi viacnásobným a viacúrovňovým dedičstvom je v tom, že viacnásobné dedičstvo je, keď trieda dedí z mnohých základných tried, zatiaľ čo viacúrovňové dedičstvo je, keď trieda dedí z odvodenej triedy, čím sa táto odvodená trieda stáva základnou triedou pre novú triedu. Viacúrovňová dedičnosť je široko používaná ako viacnásobná dedičnosť.
Stiahnite si PDF Viacnásobné verzus viacúrovňové dedičstvo
Verziu tohto článku si môžete stiahnuť vo formáte PDF a použiť ju na offline účely podľa citácie. Stiahnite si PDF verziu tu Rozdiel medzi viacnásobnou a viacúrovňovou dedičnosťou