Rozdiel medzi polymorfizmom a dedičnosťou v OOP

Kľúčový rozdiel - polymorfizmus verzus dedičnosť v OOP
 

Objektovo orientované programovanie (OOP) sa bežne používa na vývoj softvéru. Mnoho programovacích jazykov podporuje objektovo orientované programovanie. Objektovo orientované programovanie je metodika navrhovania programu pomocou tried a objektov. Trieda v OOP je plán na vytvorenie objektu. Trieda má vlastnosti a metódy. Objekt je inštanciou triedy. OOP obsahuje štyri piliere, ako napríklad dedičnosť, polymorfizmus, abstrakcia a zapuzdrenie. Tento článok sa zaoberá rozdielom medzi polymorfizmom a dedičnosťou v OOP. kľúčový rozdiel medzi polymorfizmom a dedičstvom v OOP je to Polymorfizmus je schopnosť objektu správať sa niekoľkými spôsobmi a dedičnosť je vytvoriť novú triedu pomocou vlastností a metód existujúcej triedy..

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je polymorfizmus v OOP
3. Čo je dedičstvo v OOP
4. Podobnosti medzi polymorfizmom a dedičstvom v OOP
5. Porovnanie bok po boku - polymorfizmus verzus dedičnosť v OOP v tabuľkovej forme
6. Zhrnutie

Čo je polymorfizmus v OOP?

Polymorfizmus znamená viac foriem. Jeden objekt môže mať viac správaní. Polymorfizmus možno rozdeliť do dvoch kategórií. Preťažujú sa a sú nadradené.

preťaženie

Pozrite si nasledujúci program napísaný v jazyku Java.

Obrázok 01: Preťaženie

Podľa vyššie uvedeného programu sa vytvorí objekt typu A. Pri volaní obj.sum (); poskytne výstup súvisiaci s metódou sum (). Pri volaní obj.sum (2,3); dá výstup súvisiaci so sumou (int a, int b). Je možné pozorovať, že ten istý objekt má rôzne správanie v závislosti od situácie. Ak existuje viacero metód s rovnakým názvom, ale s rôznymi parametrami, nazýva sa preťažovaniu. Je tiež známy ako statická väzba alebo skompilovať polymorfizmus.

prvoradý

Ďalším typom polymorfizmu je prvoradý. Pozrite si nasledujúci program napísaný v jazyku Java.

Obrázok 02: Nadradené

Podľa vyššie uvedeného programu existuje zobrazenie triedy () v triede A. Trieda B sa rozširuje z triedy A. Všetky metódy v triede A sú preto prístupné v triede B. Je to dedičnosť. Koncept dedičstva je opísaný ďalej.

Trieda B má tiež rovnaké zobrazenie metódy (). Pri vytváraní objektu typu A a volaní zobrazovacej metódy výstup poskytne B. Zobrazovacia metóda triedy A je potlačená zobrazovacou metódou triedy B. Takže výstup je B.

Ak existujú metódy s rovnakým názvom a rovnakými parametrami, ale v dvoch rôznych triedach a sú spojené s dedičnosťou, nazýva sa to prvoradé. Je tiež známy ako Neskorá väzba, dynamická väzba, runtime polymorfizmus. Preťaženie a nadvláda sa nazývajú polymorfizmus. Je to hlavný koncept objektovo orientovaného programovania.

Čo je dedičstvo v OOP?

Pozrite si nasledujúci program napísaný v jazyku Java.

Obrázok 03: Príklad dedičstva

Podľa vyššie uvedeného programu má trieda A metódu sum () a trieda B má metódu sub ().

Súčet sum () triedy A sa môže použiť v triede B pomocou kľúčového slova rozšírenia. Opätovné použitie vlastností a metód v existujúcej triede na vytvorenie novej triedy sa nazýva Dedičnosť. Aj v triede B neexistuje metóda sum (); zdedí sa z triedy A. Dedičnosť je užitočná pre opätovné použitie kódu. Staršia trieda sa nazýva základná trieda, nadtrieda alebo rodičovská trieda. Odvodená trieda sa nazýva podtrieda alebo trieda pre deti.

Druhy dedičstva

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..

Jednotné dedičstvo

V Single Inheritance je jedna nadtrieda a jedna podtrieda. Ak trieda A je nadtrieda a trieda B je podtrieda, všetky vlastnosti a metódy triedy A sú prístupné triede B. Existuje iba jedna úroveň; preto sa nazýva dedičstvo na jednej úrovni.

Viacúrovňové dedičstvo

Vo viacúrovňovom dedičstve existujú tri úrovne tried. Stredná trieda dedí od super triedy. Podtrieda zdedí od strednej triedy. Ak existujú tri triedy, A, B a C a A sú nadtrieda a B je stredná trieda. Potom B zdedí od A a C zdedí od B, jedná sa o viacúrovňové dedičstvo.

Viacnásobné dedičstvo

Vo viacnásobnom dedičstve existuje veľa super tried a jedna podtrieda. Ak existujú tri nadtriedy nazývané A, B, C a D, je podtrieda, potom trieda D môže zdediť od A, B a C. V programovacom jazyku C ++ je podporovaná viacnásobná dedičnosť. Nie je podporovaný v programovacích jazykoch ako Java alebo C #. Rozhrania sa používajú na implementáciu viacnásobného dedičstva v týchto jazykoch.

Hierarchické dedičstvo

Ak existujú triedy nazývané A ako super triedy a B, C sú podtriedy, tieto podtriedy môžu dediť vlastnosti a metódy triedy A. Tento druh dedičnosti je známy ako hierarchická dedičnosť.

Hybridné dedičstvo

Existuje aj iný typ špeciálneho dedičstva, ktorý sa nazýva hybridné dedičstvo. Je to kombinácia viacúrovňového a viacnásobného dedičstva. Ak A, B, C a D sú triedy a B zdedí od A a D zdedí od B aj C, potom je to hybridné dedičstvo.

Aké sú podobnosti medzi polymorfizmom a dedičstvom v OOP?

  • Obidva sú koncepty objektovo orientovaného programovania.

Aký je rozdiel medzi polymorfizmom a dedičnosťou v OOP?

Polymorfizmus vs dedičnosť v OOP

Polymorfizmus je schopnosť objektu sa správať niekoľkými spôsobmi. Dedičnosť je vytvoriť novú triedu pomocou vlastností a metód existujúcej triedy.
 používanie
Polymorfizmus sa používa pri objektoch na volanie, ktorá forma metód v čase kompilácie a behu. Dedičnosť sa používa na opätovné použitie kódu.
uskutočnenie
Polymorfizmus je implementovaný metódami. Dedičstvo sa implementuje do tried.
 Kategórie
Polymorfizmus možno rozdeliť na preťaženie a prvoradosť. Dedičnosť sa dá rozdeliť na jednoúrovňové, viacúrovňové, hierarchické, hybridné a viacnásobné dedičstvo.

zhrnutie - Polymorfizmus vs dedičnosť v OOP 

Polymorfizmus a dedičnosť sú hlavné koncepcie objektovo orientovaného programovania. Rozdiel medzi polymorfizmom a dedičnosťou v OOP spočíva v tom, že polymorfizmus je spoločným rozhraním k viacerým formám a dedičnosťou je vytvorenie novej triedy pomocou vlastností a metód existujúcej triedy. Obidva koncepty sa vo vývoji softvéru často používajú.

Stiahnite si PDF Oxymorfizmus vs Dedičnosť v OOP

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 PDF verziu tu Rozdiel medzi polymorfizmom a dedičnosťou v OOP

referencie:
  1. 8.3 Čo je dedičstvo v Jave | Prednáška cvičenie, Telusko Learning, 15. mája 2014. K dispozícii tu  
  2. Polymorfizmus v príručke Java, Telusko Learning, 15. mája 2014. K dispozícii tu