Rozdíl mezi polymorfismem a dědičností v OOP

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 je 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ý rozdíl mezi Polymorfismem a Dědičností v OOP je to Polymorfismus je schopnost objektu chovat se více způsoby a dědičností je vytvoření nové třídy 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. Srovnání bok po boku - polymorfismus vs. dědičnost v OOP v tabulkové formě
6. Shrnutí

Co je to polymorfismus v OOP?

Polymorfismus znamená více forem. Jeden objekt může mít více chování. Polymorfismus lze rozdělit do dvou kategorií. Jsou přetížení a převažující.

Přetížení

Podívejte se na 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 kompilovat polymorfismus času.

Převažující

Dalším typem polymorfismu je převažující. Podívejte se na níže uvedený program napsaný v Javě.

Obrázek 02: Overriding

Podle výše uvedeného programu existuje metoda třídy () ve třídě A. Třída B sahá od třídy A. Všechny metody ve třídě A jsou proto přístupné třídou B. Je to dědičnost. Koncept dědičnosti je popsán dále později.

Třída B má také stejný způsob zobrazení (). Při vytváření objektu typu A a volání metody zobrazení bude výstup dávat B. Způsob zobrazení třídy A je přepsán metodou zobrazení třídy B. Výstupem tedy je B.

Pokud existují metody se stejným názvem a stejnými parametry, ale ve dvou různých třídách, které jsou spojeny s dědičností, nazývá se to převažující. Je také známý jako Pozdní vazba, dynamická vazba, polymorfismus za běhu. Přetížení a převažování se nazývají polymorfismus. Je to hlavní koncept objektově orientovaného programování.

Co je dědičnost v OOP?

Podívejte se na 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 rozšířit. Opětovné použití vlastností a metod ve stávající třídě k vytvoření nové třídy se nazývá dědičnost. I ve třídě B neexistuje metoda sum (); je zděděno z třídy A. Dědičnost je užitečná pro opakované použití kódu. Starší třída se nazývá základní třída, super třída nebo rodičovská třída. Odvozená třída se nazývá podtřída nebo třída pro děti.

Druhy dědičnosti

Existují různé typy dědictví. Jsou to jednoúrovňové dědictví, víceúrovňové dědictví, vícenásobné dědictví, hierarchické dědictví a hybridní dědičnost.

Jednotné dědictví

V Single Inheritance je jedna super třída a jedna podtřída. Je-li 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řídou B. Existuje pouze jedna úroveň; proto se nazývá jednoúrovňové dědictví.

Víceúrovňové dědictví

Ve víceúrovňové dědičnosti existují tři úrovně tříd. Střední třída zdědí super třídu. Podtřída zdědí od střední 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 zdědí od A a C zdědí od B, jedná se o víceúrovňové dědictví.

Vícenásobné dědictví

Ve vícenásobném dědictví existuje mnoho super tříd a jedna podtřída. Pokud jsou podtřídy tři super třídy zvané A, B, C a D, pak třída D může zdědit A, B a C. V programovacím jazyce C ++ je podporována více 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ědictví

Pokud existují třídy zvané A jako super třídy a B, C jsou podtřídy, mohou tyto podtřídy dědit vlastnosti a metody třídy A. Tento druh dědičnosti je známý jako hierarchická dědičnost.

Hybridní dědičnost

Existuje další zvláštní typ dědičnosti, který je známý jako hybridní dědičnost. Je to kombinace 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, pak je to 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?

Polymorfismus vs dědičnost v OOP

Polymorfismus je schopnost objektu chovat se více 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, které volají, které formy metod v době kompilace a za běhu. Dědičnost se používá pro opakované použití kódu.
Implementace
Polymorfismus je implementován metodami. Dědičnost je implementována do tříd.
 Kategorie
Polymorfismus lze rozdělit na přetížení a převahu. Dědičnost lze rozdělit na jednostupňové, víceúrovňové, hierarchické, hybridní a vícenásobné.

souhrn - Polymorfismus vs dědičnost v OOP 

Polymorfismus a dědičnost jsou hlavní koncepty objektově orientovaného programování. Rozdíl mezi polymorfismem a dědičností v OOP spočívá v tom, že polymorfismus je běž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 v OOP PDF polymorfismus vs. dědičnost

Můžete si stáhnout PDF verzi tohoto článku a použít ji pro účely offline podle citace. Stáhněte si PDF verzi zde Rozdíl mezi polymorfismem a dědičností v OOP

Odkaz:
  1. 8.3 Co je dědičnost v Javě | Přednáška | Tutorial, Telusko Learning, 15. května 2014. K dispozici zde  
  2. Polymorfismus v Java tutoriálu, Telusko Learning, 15. května 2014. K dispozici zde