Klíčový rozdíl - polymorfismus vs. dědičnost v OOP
Objektově orientované programování (OOP) se běžně používá k vývoji softwaru. Mnoho programovacích jazyků podporuje objektově orientované programování. Objektově orientované programování je metodika pro návrh programu pomocí tříd a objektů. Třída v OOP je plán pro vytvoření objektu. Třída má vlastnosti a metody. Objekt je instancí třídy. OOP obsahuje čtyři pilíře jako Dědičnost, Polymorfismus, Abstrakce a Zapouzdření. Tento článek pojednává o rozdílu mezi polymorfismem a dědičností v OOP. Klíčovým rozdílem mezi Polymorfismem a Dědičností v OOP je, že Polymorfismus je schopnost objektu chovat se více způsoby a Dědičnost je vytvořit novou třídu pomocí vlastností a metod existující třídy.
OBSAH
1. Přehled a klíčový rozdíl
2. Co je polymorfismus v OOP
3. Co je dědičnost v OOP
4. Podobnosti mezi polymorfismem a dědičností v OOP
5. Porovnání vedle sebe - polymorfismus vs. dědičnost v OOP ve formě tabulky
6. Shrnutí
Co je polymorfismus v OOP?
Polymorfismus má označovat více forem. Jeden objekt může mít více chování. Polymorfismus lze rozdělit do dvou kategorií. Přetížují a převažují.
Přetížení
Viz níže uvedený program napsaný v Javě.
Obrázek 01: Přetížení
Podle výše uvedeného programu je vytvořen objekt typu A. Při volání obj.sum (); dá výstup související s metodou sum (). Při volání obj.sum (2,3); dá výstup související se součtem (int a, int b). Lze pozorovat, že stejný objekt má různé chování v závislosti na situaci. Pokud existuje více metod se stejným názvem, ale s různými parametry, je to známé jako přetížení. Je také známý jako statická vazba nebo polymorfismus času kompilace.
Převažující
Další typ polymorfismu převažuje. Viz níže uvedený program napsaný v Javě.
Obrázek 02: Přepsání
Podle výše uvedeného programu existuje metoda display () ve třídě A. Třída B sahá od třídy A. Proto jsou všechny metody ve třídě A přístupné třídě B. Je to dědičnost. Koncept dědičnosti je popsán dále později.
Třída B má také stejnou metodu display (). Při vytváření objektu typu A a volání metody zobrazení bude na výstupu B. Metoda zobrazení třídy A je přepsána metodou zobrazení třídy B. Takže výstup je B.
Pokud existují metody se stejným názvem a stejnými parametry, ale ve dvou různých třídách a jsou spojeny s dědičností, je to známé jako přepsání. Je také známý jako pozdní vazba, dynamická vazba, běhový polymorfismus. Přetížení a přepsání se nazývají polymorfismus. Jedná se o hlavní koncept v objektově orientovaném programování.
Co je dědičnost v OOP?
Viz níže uvedený program napsaný v Javě.
Obrázek 03: Příklad dědičnosti
Podle výše uvedeného programu má třída A metodu sum () a třída B má metodu sub ().
Metodu sum () třídy A lze použít ve třídě B pomocí klíčového slova extend. Opětovné použití vlastností a metod v existující třídě k vytvoření nové třídy se nazývá Inheritance. Ve třídě B dokonce neexistuje žádná metoda sum (); dědí se z třídy A. Dědičnost je užitečná pro opětovné použití kódu. Starší třída se nazývá základní třída, nadtřída nebo nadřazená třída. Odvozená třída se nazývá podtřída nebo podřízená třída.
Druhy dědičnosti
Existují různé typy dědičnosti. Jsou to dědičnost na jedné úrovni, dědičnost na více úrovních, dědičnost více, hierarchická dědičnost a hybridní dědičnost.
Single dědičnost
V Single Inheritance existuje jedna super třída a jedna podtřída. Pokud je třída A super třída a třída B je podtřída, všechny vlastnosti a metody třídy A jsou přístupné třídě B. Existuje pouze jedna úroveň; proto se nazývá jednoúrovňové dědictví.
Víceúrovňové dědictví
V Multi-Level Inheritance existují tři úrovně tříd. Střední třída dědí ze super třídy. Dílčí třída dědí z mezilehlé třídy. Pokud existují tři třídy jako A, B a C a A je super třída a B je střední třída. Pak B dědí z A a C dědí z B, je to víceúrovňová dědičnost.
Vícenásobné dědictví
V Multiple Inheritance existuje mnoho super tříd a jedna podtřída. Pokud existují tři super třídy zvané A, B, C a D je podtřídou, pak třída D může dědit z A, B a C. V programovacím jazyce C ++ je podporována vícenásobná dědičnost. Není podporován v programovacích jazycích, jako je Java nebo C #. Rozhraní se používají k implementaci vícenásobné dědičnosti v těchto jazycích.
Hierarchická dědičnost
Pokud existují třídy zvané A jako super třídy a B, C jsou podtřídy, mohou tyto podtřídy zdědit vlastnosti a metody třídy A. Tento typ dědičnosti je známý jako hierarchická dědičnost.
Hybridní dědičnost
Existuje další speciální typ dědičnosti, který se nazývá hybridní dědičnost. Jedná se o kombinaci víceúrovňového a vícenásobného dědictví. Pokud A, B, C a D jsou třídy a B dědí z A a D dědí z B i C, jedná se o hybridní dědičnost.
Jaké jsou podobnosti mezi polymorfismem a dědičností v OOP?
Oba jsou koncepty objektově orientovaného programování
Jaký je rozdíl mezi polymorfismem a dědičností v OOP?
Rozdílný článek uprostřed před tabulkou
Polymorfismus vs. dědičnost v OOP |
|
Polymorfismus je schopnost objektu chovat se několika způsoby. | Dědičností je vytvoření nové třídy pomocí vlastností a metod existující třídy. |
Používání | |
Polymorfismus se používá pro objekty k volání které formy metod v době kompilace a běhu. | Dědičnost se používá pro opětovné použití kódu. |
Implementace | |
Polymorfismus je implementován v metodách. | Dědičnost je implementována ve třídách. |
Kategorie | |
Polymorfismus lze rozdělit na přetížení a přepsání. | Dědičnost lze rozdělit na jednoúrovňové, víceúrovňové, hierarchické, hybridní a vícenásobné dědictví. |
Shrnutí - Polymorfismus vs. dědičnost v OOP
Polymorfismus a dědičnost jsou hlavními koncepty objektově orientovaného programování. Rozdíl mezi Polymorfismem a Dědičností v OOP spočívá v tom, že Polymorfismus je společným rozhraním pro více forem a Dědičností je vytvoření nové třídy pomocí vlastností a metod existující třídy. Oba koncepty jsou široce používány ve vývoji softwaru.
Stáhněte si PDF Polymorphism vs Inheritance v OOP
Můžete si stáhnout verzi tohoto článku ve formátu PDF a použít jej pro offline účely podle citace. Stáhněte si zde PDF verzi Rozdíl mezi polymorfismem a dědičností v OOP