Klíčový rozdíl – vícenásobná vs. víceúrovňová dědičnost
Object-Oriented Programming (OOP) je paradigma pro návrh programu pomocí tříd a metod. Scénáře reálného světa lze mapovat na objekty. Proto je snadné vytvářet softwarová řešení. Třída je plán pro sestavení objektu. Obsahuje vlastnosti a metody. Například před vytvořením objektu student by měl existovat student třídy s vlastnostmi a metodami. Student může mít vlastnosti, jako je ID studenta, jméno a metody, jako je čtení, zápis, studium. Metody popisují chování, zatímco vlastnosti jsou atributy. Po vytvoření třídy je možné pomocí nich vytvářet objekty. Vytváření objektů je také známé jako objektová instance. Objekt neexistuje izolovaně. Komunikují s jinými objekty a data jsou předávána v rámci objektů. Jedním z pilířů OOP je dědičnost. Účelem dědičnosti je zvýšit znovupoužitelnost kódu. Vytváří novou třídu vlastností a metod již existující třídy. Existující třída je známá jako základní třída a nová třída se nazývá odvozená třída. Vícenásobná dědičnost a Víceúrovňová dědičnost jsou typy dědičnosti. Tento článek popisuje rozdíl mezi nimi. Klíčový rozdíl mezi vícenásobnou a víceúrovňovou dědičností je v tom, že víceúrovňová dědičnost je, když třída dědí z mnoha základních tříd, zatímco víceúrovňová dědičnost je, když třída dědí z odvozené třídy, což z této odvozené třídy dělá základní třídu pro novou třídu.
Co je vícenásobná dědičnost?
Vícenásobná dědičnost je, když třída zdědí více než jednu základní třídu.
Obrázek 01: Vícenásobná dědičnost
A B a C jsou třídy. A a B jsou základní třídy a C je odvozená třída. Třída C musí spravovat závislost obou základních tříd A a B. Vícenásobná dědičnost se v softwarových projektech příliš nepoužívá. Díky tomu je systém složitější, protože jedna třída dědí mnoho tříd.
Předpokládejme například, že třída A i B mají metodu se stejným názvem, což je sum() a třída C odvozuje obě třídy. Po vytvoření objektu typu C a volání metody sum () může dojít k chybě, protože obě třídy mají stejnou metodu. Kompilátor neví, kterou funkci má volat. Proto vícenásobná dědičnost zvyšuje složitost systému. Vícenásobná dědičnost je podporována v jazyce C++, ale jazyky jako Java, C vícenásobnou dědičnost nepodporují. Místo toho tyto jazyky používají rozhraní, které je podobné třídě, ale nelze vytvořit instanci.
Co je víceúrovňová dědičnost?
Víceúrovňová dědičnost je, když třída dědí z odvozené třídy, čímž se tato odvozená třída stává základní třídou pro novou třídu.
Obrázek 02: Víceúrovňová dědičnost
Víceúrovňová dědičnost má tři úrovně. Mezitřída, kterou B dědí od třídy A a třída C dědí od třídy B. A je základní třída pro B a B je základní třída pro C.
Program, který implementuje víceúrovňovou dědičnost, je následující. Program je napsán pomocí Java.
Obrázek 03: Program, který implementuje víceúrovňovou dědičnost
Podle výše uvedeného programu je třída A základní třídou pro třídu B. Třída B je základní třídou pro třídu C. Všechny vlastnosti a metody třídy A jsou přístupné třídou B. Všechny vlastnosti a metody třídy B je přístupný třídou C. Třída C tedy může přistupovat k vlastnostem a metodám A i B. Při vytváření objektu typu C je možné volat všechny tři metody A (), B () a C (). Výstup bude A, B, C.
Jaká je podobnost mezi vícenásobnou a víceúrovňovou dědičností?
Oba jsou typy dědičnosti
Jaký je rozdíl mezi vícenásobnou a víceúrovňovou dědičností?
Vícenásobná dědičnost vs víceúrovňová dědičnost |
|
Multiple Inheritance je typ dědičnosti, kdy třída dědí z více než jedné základní třídy. | Víceúrovňová dědičnost je typ dědičnosti, který dědí z odvozené třídy, čímž se tato odvozená třída stává základní třídou pro novou třídu. |
Použití | |
Vícenásobná dědičnost není široce používána, protože dělá systém složitější. | Víceúrovňová dědičnost je široce používána. |
Úrovně tříd | |
Vícenásobná dědičnost má dvě úrovně tříd, jmenovitě základní třídu a odvozenou třídu. | Víceúrovňová dědičnost má tři úrovně tříd, jmenovitě základní třídu, střední třídu a odvozenou třídu. |
Shrnutí – Vícenásobná vs. Víceúrovňová dědičnost
Dědičnost je hlavním pilířem objektově orientovaného programování. Existují různé typy dědičnosti; jsou to jednoúrovňová dědičnost, víceúrovňová dědičnost, vícenásobná dědičnost, hierarchická dědičnost a hybridní dědičnost. Jednoúrovňová dědičnost má jednu základní třídu a jednu odvozenou třídu. Hierarchická dědičnost má jednu základní třídu a mnoho odvozených tříd. Hybridní dědičnost je kombinací víceúrovňové a vícenásobné dědičnosti. Tento článek popsal rozdíl mezi vícenásobnou dědičností a víceúrovňovou dědičností. Rozdíl mezi vícenásobnou a víceúrovňovou dědičností je v tom, že víceúrovňová dědičnost je, když třída dědí z mnoha základních tříd, zatímco víceúrovňová dědičnost je, když třída dědí z odvozené třídy, což z této odvozené třídy dělá základní třídu pro novou třídu. Víceúrovňová dědičnost je široce používána než vícenásobná dědičnost.
Stáhnout PDF Vícenásobná vs víceúrovňová dědičnost
Můžete si stáhnout PDF verzi tohoto článku a použít ji pro offline účely podle citace. Stáhněte si prosím PDF verzi zde Rozdíl mezi vícenásobnou a víceúrovňovou dědičností