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..
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
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é.
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.
Ď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.
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.
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..
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.
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.
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.
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ť.
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.
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. |
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ú.
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