Tarkvara arendamiseks kasutatakse tavaliselt objektorienteeritud programmeerimist (OOP). Paljud programmeerimiskeeled toetavad objektorienteeritud programmeerimist. Objektorienteeritud programmeerimine on metoodika programmi kujundamiseks klasside ja objektide abil. Klass OOP-is on objekti loomise plaan. Klassil on omadused ja meetodid. Objekt on klassi eksemplar. OOP sisaldab nelja samba nagu pärimine, polümorfism, abstraktsioon ja kapseldamine. Selles artiklis käsitletakse erinevust OOP polümorfismi ja pärimise vahel. võtme erinevus OOP polümorfismi ja pärimise vahel on see Polümorfism on objekti võime käituda mitmel viisil ja pärimine on luua uus klass, kasutades olemasoleva klassi omadusi ja meetodeid.
1. Ülevaade ja peamised erinevused
2. Mis on OOP polümorfism?
3. Mis on pärand OOP-s?
4. OOP polümorfismi ja pärimise sarnasused
5. Kõrvuti võrdlus - polümorfism vs pärand OOP-is tabelina
6. Kokkuvõte
Polümorfism tähendab mitut vormi. Ühel objektil võib olla mitu käitumist. Polümorfismi võib jagada kahte kategooriasse. Nad on ülekoormatud ja tähtsustavad.
Vaadake allolevat Java keeles kirjutatud programmi.
Joonis 01: ülekoormus
Ülaltoodud programmi kohaselt luuakse A-tüüpi objekt. Obj.sum () helistades; see annab meetodi summaga seotud väljundi (). Obj.sum (2,3) helistamisel; see annab summaga seotud väljundi (int a, int b). Võib täheldada, et samal objektil on olenevalt olukorrast erinev käitumisviis. Kui sama nimega, kuid erinevate parameetritega on mitu meetodit, tuntakse seda kui ülekoormamine. Seda tuntakse ka kui staatiline sidumine või koostada ajapolümorfism.
Teine polümorfismi tüüp on ülimuslik. Vaadake allolevat Java keeles kirjutatud programmi.
Joonis 02: Ülimus
Ülaltoodud programmi kohaselt on klassis A kuvatav meetod (). Klass B ulatub klassist A. Seetõttu on klassi A kõik meetodid ligipääsetavad. See on pärand. Pärimiskontseptsiooni kirjeldatakse lähemalt hiljem.
B-klassil on ka sama meetodinäidik (). A-tüüpi objekti loomisel ja helistamismeetodil annab väljund B. Klassi A kuvamismeetodi alistab B-klassi kuvamismeetod. Niisiis, väljund on B.
Kui leidub meetodeid, millel on sama nimi ja samad parameetrid, kuid kahes erinevas klassis, ja need on seotud pärimisega, nimetatakse seda ülimuslikuks. Seda tuntakse ka kui Hiline sidumine, dünaamiline sidumine, kestuspolümorfism. Ülekoormamist ja alistamist nimetatakse polümorfismiks. See on objektorienteeritud programmeerimise peamine kontseptsioon.
Vaadake allolevat Java keeles kirjutatud programmi.
Joonis 03: Pärandi näide
Vastavalt ülaltoodud programmile on klassil A meetodi summa () ja klassil B on meetodi alam ().
A-klassi sum () meetodit saab klassis B kasutada laiendatud märksõna abil. Olemasoleva klassi omaduste ja meetodite taaskasutamist uue klassi loomiseks nimetatakse päranduseks. Isegi klassis B pole sum () meetodit; see on päritud klassist A. Pärimine on kasulik koodi korduvkasutatavuse jaoks. Vanemat klassi kutsutakse põhiklass, superklass või vanema klass. Tuletatud klassi nimetatakse alaklass või lasteklass.
Pärandusi on mitmesuguseid. Need on ühetasandiline pärand, mitmetasandiline pärand, mitmekordne pärand, hierarhiline pärand ja hübriidne pärand.
Ühtses pärandis on üks superklass ja üks alamklass. Kui klass A on superklass ja klass B on alamklass, pääseb klass A juurde kõigile omadustele ja meetoditele. B-klassi on ainult üks; seetõttu nimetatakse seda ühetasandiliseks päranduseks.
Mitmetasandilises pärandis on klasside kolm taset. Vaheklass pärib superklassilt. Alamklass pärib keskklassist. Kui on kolm klassi nagu A, B ja C ning A on superklass ja B on vaheklass. Siis pärib B A-st ja C pärib B-st, see on mitmetasandiline pärand.
Mitme pärimise korral on palju superklasse ja üks alamklass. Kui on kolm superklassi, milleks on A, B, C ja D on alamklass, siis võib klass D pärida A, B ja C hulgast. Programmeerimiskeeles C ++ toetatakse mitut pärandit. Programmeerimiskeeltes, nagu Java või C #, seda ei toetata. Nendes keeltes kasutatakse mitme pärimise rakendamiseks liideseid.
Kui on klassid, mida nimetatakse superklassideks A ja B, C on alamklassid, võivad need alamklassid pärida klassi A omadused ja meetodid. Sellist päranditüüpi nimetatakse hierarhiliseks pärandiks.
On veel üks spetsiaalne päranditüüp, mida tuntakse hübriidi pärandina. See on mitmetasandilise ja mitmekordse pärandi kombinatsioon. Kui A, B, C ja D on klassid ja B on päritav A-st ja D on päritav nii B-st kui ka C-st, siis on see hübriidne pärand.
Polümorfism vs pärimine OOP-s | |
Polümorfism on objekti võime käituda mitmel viisil. | Pärimine on uue klassi loomine, kasutades olemasoleva klassi omadusi ja meetodeid. |
Kasutamine | |
Polümorfismi kasutatakse objektide jaoks, et nimetada mis tüüpi meetodeid kompileerimise ajal ja käitusel. | Pärimist kasutatakse koodi korduvkasutatavuse jaoks. |
Rakendamine | |
Polümorfismi rakendatakse meetodites. | Pärimist rakendatakse klassides. |
Kategooriad | |
Polümorfismi võib jagada ülekoormamiseks ja ülimuslikuks. | Pärandi võib jagada ühetasandiliseks, mitmetasandiliseks, hierarhiliseks, hübriidseks ja mitmeks pärimiseks. |
Polümorfism ja pärimine on objektorienteeritud programmeerimise peamised mõisted. Polümorfismi ja pärandi erinevus OOP-is seisneb selles, et polümorfism on mitmete vormide ühine liides ja pärimine on uue klassi loomine, kasutades olemasoleva klassi omadusi ja meetodeid. Mõlemat mõistet kasutatakse tarkvaraarenduses laialdaselt.
Selle artikli PDF-versiooni saate alla laadida ja seda võrguühenduseta otstarbel kasutada tsitaatide märkuse kohaselt. Laadige alla PDF-versioon siit. Erinevus polümorfismi ja pärimise vahel OOP-is