Rozdiel medzi polymorfizmom a dedičnosťou v OOP

Obsah:

Rozdiel medzi polymorfizmom a dedičnosťou v OOP
Rozdiel medzi polymorfizmom a dedičnosťou v OOP

Video: Rozdiel medzi polymorfizmom a dedičnosťou v OOP

Video: Rozdiel medzi polymorfizmom a dedičnosťou v OOP
Video: Yegor Bugayenko. Java vs. OOP 2024, November
Anonim

Kľúčový rozdiel – Polymorfizmus vs. dedičnosť v OOP

Object-Oriented Programming (OOP) sa bežne používa na vývoj softvéru. Mnoho programovacích jazykov podporuje objektovo orientované programovanie. Objektovo orientované programovanie je metodológia na navrhovanie 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 dedičnosť, polymorfizmus, abstrakcia a zapuzdrenie. Tento článok pojednáva o rozdiele medzi polymorfizmom a dedičnosťou v OOP. Kľúčový rozdiel medzi polymorfizmom a dedičnosťou v OOP je ten, že polymorfizmus je schopnosť objektu správať sa viacerými spôsobmi a dedičnosť je vytvoriť novú triedu pomocou vlastností a metód existujúcej triedy.

Čo je polymorfizmus v OOP?

Polymorfizmus označuje viacero foriem. Jeden objekt môže mať viacero správaní. Polymorfizmus možno rozdeliť do dvoch kategórií. Preťažujú sa a prepínajú.

Preťaženie

Pozri nižšie uvedený program napísaný v jazyku Java.

Rozdiel medzi polymorfizmom a dedičnosťou v OOP
Rozdiel medzi polymorfizmom a dedičnosťou v OOP

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). Dá sa 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 to preťaženie. Je tiež známy ako statická väzba alebo polymorfizmus času kompilácie.

Overriding

Iný typ polymorfizmu má prednosť. Pozrite si nižšie uvedený program napísaný v jazyku Java.

Rozdiel medzi polymorfizmom a dedičnosťou v OOP_Obrázok 02
Rozdiel medzi polymorfizmom a dedičnosťou v OOP_Obrázok 02

Obrázok 02: Prepísanie

Podľa vyššie uvedeného programu existuje metóda display() v triede A. Trieda B siaha z triedy A. Preto sú všetky metódy v triede A prístupné triedou B. Ide o dedičnosť. Koncept dedičstva je opísaný neskôr.

Trieda B má tiež rovnakú metódu display(). Pri vytváraní objektu typu A a volaní metódy zobrazenia bude výstupom B. Metóda zobrazenia triedy A je prepísaná metódou zobrazenia triedy B. Takže výstup je B.

Keď existujú metódy s rovnakým názvom a rovnakými parametrami, ale v dvoch rôznych triedach a sú prepojené s dedičnosťou, je to známe ako prepisovanie. Je tiež známy ako neskorá väzba, dynamická väzba, runtime polymorfizmus. Preťaženie a prepísanie sa nazývajú polymorfizmus. Je to hlavný koncept v objektovo orientovanom programovaní.

Čo je dedičnosť v OOP?

Pozri nižšie uvedený program napísaný v jazyku Java.

Kľúčový rozdiel medzi polymorfizmom a dedičnosťou v OOP
Kľúčový rozdiel medzi polymorfizmom a dedičnosťou v OOP

Obrázok 03: Príklad dedenia

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

Metódu sum() triedy A možno použiť v triede B pomocou kľúčového slova extend. Opätovné použitie vlastností a metód v existujúcej triede na vytvorenie novej triedy je známe ako dedičnosť. Dokonca ani v triede B neexistuje metóda sum(); je dedený z triedy A. Dedičnosť je užitočná na 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 podtrieda.

Typy dedenia

Existujú rôzne typy dedenia. Sú to jednoúrovňové dedičstvo, viacúrovňové dedičstvo, viacnásobné dedičstvo, hierarchické dedičstvo a hybridné dedičstvo.

Jednotlivé dedičstvo

V jedinej dedičnosti existuje jedna supertrieda a jedna podtrieda. Ak je trieda A nadtriedou a trieda B je podtriedou, všetky vlastnosti a metódy triedy A sú prístupné triede B. Existuje len jedna úroveň; preto sa nazýva jednoúrovňová dedičnosť.

Viacúrovňové dedičstvo

V viacúrovňovej dedičnosti existujú tri úrovne tried. Stredná trieda dedí zo supertriedy. Podtrieda dedí od strednej triedy. Ak existujú tri triedy ako A, B a C a A je super trieda a B je stredná trieda. Potom B dedí z A a C dedí z B, ide o viacúrovňové dedičstvo.

Viacnásobné dedičstvo

Vo viacnásobnej dedičnosti existuje veľa supertried a jedna podtrieda. Ak existujú tri supertriedy nazývané A, B, C a D je podtrieda, potom trieda D môže dediť z A, B a C. Viacnásobná dedičnosť je podporovaná v programovacom jazyku C++. Nie je podporovaný v programovacích jazykoch ako Java alebo C. Rozhrania sa používajú na implementáciu viacnásobnej dedičnosti v týchto jazykoch.

Hierarchické dedičstvo

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

Hybridné dedičstvo

Existuje ďalší špeciálny typ dedičnosti, ktorý je známy ako hybridná dedičnosť. Ide o kombináciu viacúrovňového a viacnásobného dedičstva. Ak sú A, B, C a D triedy a B dedí z A a D dedí z B aj C, potom ide o hybridné dedičstvo.

Aké sú podobnosti medzi polymorfizmom a dedičnosťou v OOP?

Obaja sú koncepty objektovo orientovaného programovania

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

Polymorfizmus verzus dedičnosť v OOP

Polymorfizmus je schopnosť objektu správať sa viacerými spôsobmi. Dedičnosť je vytvorenie novej triedy pomocou vlastností a metód existujúcej triedy.
Použitie
Polymorfizmus sa používa pre objekty na volanie tej ktorej formy metód v čase kompilácie a behu. Dedičnosť sa používa na opätovné použitie kódu.
Implementácia
Polymorfizmus je implementovaný v metódach. Dedičnosť je implementovaná v triedach.
Categories
Polymorfizmus možno rozdeliť na preťaženie a prepísanie. Dedičstvo možno rozdeliť na jednoúrovňové, viacúrovňové, hierarchické, hybridné a viacnásobné dedičstvo.

Súhrn – Polymorfizmus vs. dedičnosť v OOP

Polymorfizmus a dedičnosť sú hlavné pojmy v objektovo orientovanom programovaní. Rozdiel medzi polymorfizmom a dedičnosťou v OOP je v tom, že polymorfizmus je spoločným rozhraním pre viaceré formy a dedičnosť je vytvorenie novej triedy pomocou vlastností a metód existujúcej triedy. Oba koncepty sú široko používané vo vývoji softvéru.

Stiahnite si PDF Polymorfizmus verzus dedičnosť v OOP

Verziu tohto článku si môžete stiahnuť vo formáte PDF a použiť ju na offline účely podľa citácie. Stiahnite si PDF verziu tu Rozdiel medzi polymorfizmom a dedičnosťou v OOP

Odporúča: