Rozdiel medzi viacnásobným a viacúrovňovým dedičstvom

Kľúčový rozdiel - viacnásobné verzus viacúrovňové dedičstvo
 

Objektovo orientované programovanie (OOP) je paradigma na návrh programu pomocou tried a metód. Scenáre reálneho sveta je možné mapovať na objekty. Preto je ľahké vytvárať softvérové ​​riešenia. Trieda je plán na zostavenie objektu. Obsahuje vlastnosti a metódy. Napríklad pred vytvorením študentského objektu by mal existovať triedny študent s vlastnosťami a metódami. Študent môže mať vlastnosti, ako je ID študenta, meno a metódy ako čítanie, zápis, štúdium. Metódy opisujú správanie, zatiaľ čo vlastnosti sú atribúty. Po vytvorení triedy je možné vytvárať objekty pomocou nich. Vytváranie objektov sa tiež nazýva Okamžitá inštalácia objektov. Objekt neexistuje samostatne. Komunikujú s inými objektmi a údaje sa prenášajú v rámci objektov. Jedným z pilierov OOP je dedičstvo. Účelom dedičstva je zvýšiť opakované použitie kódu. Vytvára novú triedu vlastností a metód už existujúcej triedy. Existujúca trieda sa nazýva základná trieda a nová trieda sa nazýva odvodená trieda. Viacnásobné dedičstvo a viacúrovňové dedičstvo sú typy dedičstva. Tento článok sa zaoberá rozdielom medzi nimi. kľúčový rozdiel medzi viacnásobným a viacúrovňovým dedičstvom je to Viacnásobné dedičstvo je, keď trieda zdedí z mnohých základných tried, zatiaľ čo viacúrovňové dedičstvo je, keď trieda dedí odvodenú triedu, vďaka ktorej je odvodená trieda základnou triedou pre novú triedu..

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je viacnásobné dedičstvo
3. Čo je viacúrovňové dedičstvo
4. Podobnosti medzi viacnásobným a viacúrovňovým dedičstvom
5. Porovnanie vedľa seba - viacnásobné verzus viacúrovňové dedičstvo v tabuľkovej forme
6. Zhrnutie

Čo je viacnásobné dedičstvo?

Viacnásobné dedičstvo 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čstvo sa v softvérových projektoch často nepoužíva. To robí systém zložitejším, pretože jedna trieda dedí mnoho tried.

Napríklad predpokladajme, že obidve triedy A a B majú metódu s rovnakým názvom, ktorým je súčet (), a trieda C odvodzuje obe triedy. Po vytvorení objektu typu C a volaní metódy sum () to môže spôsobiť chybu, pretože obe triedy majú rovnakú metódu. Kompilátor nevie, na ktorú funkciu má volať. Preto viacnásobné dedičstvo zvyšuje zložitosť systému. Funkcia Multiple Inheritance je podporovaná v jazyku C ++, ale jazyky ako Java, C # nepodporujú funkciu Multiple Inheritance. Namiesto toho tieto jazyky používajú rozhranie, ktoré je podobné triede, ale nemožno ho vytvoriť.

Čo je viacúrovňové dedičstvo?

Viacúrovňové dedičstvo je, keď trieda zdedí odvodenú triedu, vďaka ktorej je odvodená trieda základnou triedou pre novú triedu.

Obrázok 02: Viacúrovňové dedičstvo

Viacúrovňové dedičstvo má tri úrovne. Sprostredkovateľská trieda, ktorú zdedí B od triedy A a trieda C zdedí od 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ý pomocou Java.

Obrázok 03: Program, ktorým sa 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é triedou B. Všetky vlastnosti a metódy triedy B sú prístupné triedou C. Preto trieda C má prístup k vlastnostiam a metódam A aj B. Pri vytváraní objektu typu C je možné zavolať všetky tri metódy A (), B () a C (). Výstup poskytne A, B, C.

Aká je podobnosť medzi viacúrovňovým a viacúrovňovým dedičstvom?

  • Oba typy sú dedičstvom.

Aký je rozdiel medzi viacnásobným a viacúrovňovým dedičstvom?

Viacnásobné dedičstvo vs viacúrovňové dedičstvo

Viacnásobné dedičstvo je typ dedičstva, keď trieda dedí viac ako jednu základnú triedu. Viacúrovňové dedičstvo je typ dedičnosti, ktorý dedí odvodená trieda, vďaka ktorej je odvodená trieda základnou triedou pre novú triedu.
 používanie
Viacnásobné dedičstvo sa často nepoužíva, pretože zvyšuje zložitosť systému. Viacúrovňové dedičstvo sa bežne používa.
Úrovne triedy
Viacnásobné dedičstvo má dve úrovne triedy, a to základnú a odvodenú triedu. Viacúrovňové dedičstvo má tri úrovne triedy, a to základnú triedu, strednú triedu a odvodenú triedu.

zhrnutie - Viacnásobné vs viacúrovňové dedičstvo

Dedičstvo 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. Dedičnosť jednej úrovne má jednu základnú triedu a jednu odvodenú triedu. Hierarchické dedičstvo má jednu základnú triedu a mnoho odvodených tried. Hybridné dedičstvo je kombináciou viacúrovňového a viacnásobného dedičstva. Tento článok popisuje rozdiel medzi viacnásobným dedičstvom a viacúrovňovým dedičstvom. Rozdiel medzi viacnásobným a viacúrovňovým dedičstvom je ten, že viacnásobné dedičstvo je, keď trieda dedí od mnohých základných tried, zatiaľ čo viacúrovňové dedičstvo je, keď trieda dedí odvodenú triedu, čo z tejto odvodenej triedy robí základnú triedu pre novú triedu. Viacúrovňové dedičstvo sa bežne používa ako viacnásobné dedičstvo.

Stiahnite si PDF Multiple vs Multilevel Inheritance

Môžete si stiahnuť verziu tohto článku vo formáte PDF a použiť ju na účely offline podľa citácie. Stiahnite si verziu PDF tu Rozdiel medzi viacnásobným a viacúrovňovým dedičstvom

referencie:

1.Singh, Chaitanya a kol. „Druhy dedičnosti v jazyku Java: jednoduché, viacnásobné, viacúrovňové a hybridné.“ Beginnersbook.com, 6. decembra 2013. K dispozícii tu
2.tutorialspoint.com. „Dedičnosť Java.“ Bod. K dispozícii tu 

S láskavým dovolením:

1.'Multiple Inheritance'By Suman Maverick Gangulian Suman420 - Vlastná práca, (CC BY 3.0) prostredníctvom Commons Wikimedia 
2.'Multilevel Inheritance'By Autor: Suman Maverick Gangulian Suman420 (diskusia) 12:03, 2. marca 2015 (UTC) - Vlastná práca, (CC BY 3.0) prostredníctvom Commons Wikimedia