Kľúčový rozdiel - polymorfizmus vs. 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 Dedičstvo, Polymorfizmus, Abstrakcia a Zapuzdrenie. Tento článok pojednáva o rozdieloch medzi polymorfizmom a dedičnosťou v OOP. Kľúčovým rozdielom medzi polymorfizmom a dedičnosťou v OOP je, že polymorfizmus predstavuje schopnosť objektu správať sa viacerými spôsobmi a dedičnosťou je vytvorenie novej triedy pomocou vlastností a metód existujúcej triedy.
OBSAH
1. Prehľad a kľúčový rozdiel
2. Čo je to polymorfizmus v OOP
3. Čo je to dedičnosť v OOP
4. Podobnosti medzi polymorfizmom a dedičnosťou v OOP
5. Porovnanie vedľa seba - polymorfizmus vs. dedičnosť v OOP v tabuľkovej forme
6. Zhrnutie
Čo je polymorfizmus v OOP?
Polymorfizmus má označovať viac foriem. Jeden objekt môže mať viac chovaní. Polymorfizmus možno rozdeliť do dvoch kategórií. Preťažujú a prevažujú.
Preťaženie
Prečítajte si program uvedený nižšie 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 (); dá výstup súvisiaci s metódou sum (). Pri volaní obj.sum (2,3); dá výstup súvisiaci so súčtom (int a, int b). Je možné pozorovať, že rovnaký objekt sa líši v závislosti od situácie. Ak existuje viac metód s rovnakým názvom, ale s rôznymi parametrami, je to známe ako preťaženie. Je tiež známy ako statická väzba alebo polymorfizmus času kompilácie.
Naliehavé
Iný typ polymorfizmu je prvoradý. Prečítajte si program uvedený nižšie v jazyku Java.
Obrázok 02: Vyradenie
Podľa vyššie uvedeného programu existuje v triede A metóda display (). Trieda B siaha od triedy A. Preto sú všetky metódy v triede A prístupné pre triedu B. Ide o dedičstvo. Koncept dedenia je popísaný ďalej neskôr.
Trieda B má tiež rovnakú metódu display (). Pri vytváraní objektu typu A a volaní zobrazovacej metódy bude mať výstup B. Zobrazovacia metóda triedy A je prepísaná zobrazovacou metódou triedy B. Výstup je teda B.
Ak existujú metódy s rovnakým názvom a rovnakými parametrami, ale v dvoch rôznych triedach, ktoré sú spojené s dedičstvom, je známe ako prepísanie. Je tiež známy ako neskoré viazanie, dynamické viazanie, runtime polymorfizmus. Preťaženie a prepísanie sa nazývajú polymorfizmus. Je to hlavný koncept v objektovo orientovanom programovaní.
Čo je dedičstvo v OOP?
Prečítajte si program uvedený nižšie 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 metódu sub ().
Metódu sum () triedy A je možné 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 sa nazýva Inheritance. V triede B dokonca neexistuje žiadna metóda sum (); dedí sa 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 podradená trieda.
Druhy dedičstva
Existujú rôzne druhy dedičstva. Sú to jednoúrovňové dedičstvo, viacúrovňové dedičstvo, viacnásobné dedičstvo, hierarchická dedičnosť a hybridné dedičstvo.
Jednotné dedičstvo
V Single Inheritance existuje jedna super trieda a jedna podtrieda. Ak je trieda A supertrieda a trieda B je podtrieda, všetky vlastnosti a metódy triedy A sú prístupné pre triedu B. Existuje iba jedna úroveň; preto sa nazýva ako dedičstvo jednej úrovne.
Viacúrovňové dedičstvo
Vo viacúrovňovom dedičstve existujú tri úrovne tried. Stredná trieda dedí zo super triedy. Podtrieda dedí z medzitriedy. 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, je to viacúrovňové dedičstvo.
Viacnásobné dedičstvo
Vo Multiple Inheritance existuje veľa super tried a jedna podtrieda. Ak existujú tri super triedy nazývané A, B, C a D je podtrieda, potom môže trieda D dediť z A, B a C. V programovacom jazyku C ++ je podporovaná viacnásobná dedičnosť. Nie je podporovaný v programovacích jazykoch, ako sú 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 super triedy a B, C sú podtriedy, môžu tieto podtriedy dediť vlastnosti a metódy triedy A. Tento typ dedičstva je známy ako hierarchická dedičnosť.
Hybridné dedičstvo
Existuje ešte jeden špeciálny typ dedičstva, ktorý je známy ako hybridná dedičnosť. Je to kombinácia viacúrovňového a viacnásobného dedičstva. Ak A, B, C a D sú 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?
Oba sú koncepty objektovo orientovaného programovania
Aký je rozdiel medzi polymorfizmom a dedičnosťou v OOP?
Rozdielny článok v strede pred tabuľkou
Polymorfizmus vs dedičnosť v OOP |
|
Polymorfizmus je schopnosť objektu správať sa viacerými spôsobmi. | Dedičstvom je vytvorenie novej triedy pomocou vlastností a metód existujúcej triedy. |
Využitie | |
Polymorfizmus sa používa pre objekty na volanie ktorej formy metód v čase kompilácie a behu programu. | Dedičnosť sa používa na opätovné použitie kódu. |
Implementácia | |
Polymorfizmus je implementovaný v metódach. | Dedenie je implementované v triedach. |
Kategórie | |
Polymorfizmus možno rozdeliť na preťaženie a prepracovanie. | Dedenie možno 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ými konceptmi objektovo orientovaného programovania. Rozdiel medzi Polymorfizmom a Dedičnosťou v OOP je v tom, že Polymorfizmus je spoločným rozhraním pre viac foriem a Dedičnosť je vytvorenie novej triedy pomocou vlastností a metód existujúcej triedy. Oba koncepty sa vo vývoji softvéru často používajú.
Stiahnite si súbor PDF Polymorfizmus vs dedičnosť v OOP
Môžete si stiahnuť verziu tohto článku vo formáte PDF a použiť ho na offline účely podľa citačnej poznámky. Stiahnite si tu PDF verziu. Rozdiel medzi polymorfizmom a dedičnosťou v OOP