Erinevus OOP-i polümorfismi ja pärilikkuse vahel

Sisukord:

Erinevus OOP-i polümorfismi ja pärilikkuse vahel
Erinevus OOP-i polümorfismi ja pärilikkuse vahel

Video: Erinevus OOP-i polümorfismi ja pärilikkuse vahel

Video: Erinevus OOP-i polümorfismi ja pärilikkuse vahel
Video: Technotronic - Pump Up The Jam (Official Music Video) 2024, Juuni
Anonim

Peamine erinevus – polümorfism vs pärilikkus OOP-is

Objektorienteeritud programmeerimist (OOP) kasutatakse tavaliselt tarkvara arendamiseks. Paljud programmeerimiskeeled toetavad objektorienteeritud programmeerimist. Objektorienteeritud programmeerimine on klasside ja objektide abil programmi kujundamise metoodika. Klass OOP-is on kavand objekti loomiseks. Klassil on omadused ja meetodid. Objekt on klassi eksemplar. OOP sisaldab nelja sammast, nagu pärimine, polümorfism, abstraktsioon ja kapseldamine. Selles artiklis käsitletakse polümorfismi ja pärilikkuse erinevust OOP-is. Peamine erinevus OOP-i polümorfismi ja pärilikkuse vahel on see, et polümorfism on objekti võime käituda mitmel viisil ja pärand on luua uus klass, kasutades olemasoleva klassi atribuute ja meetodeid.

Mis on OOP-i polümorfism?

Polümorfism tähistab mitut vormi. Ühel objektil võib olla mitu käitumist. Polümorfismi võib jagada kahte kategooriasse. Need on ülekoormatud ja alistavad.

Ülekoormus

Vaadake allolevat Java keeles kirjutatud programmi.

Erinevus OOP-i polümorfismi ja pärilikkuse vahel
Erinevus OOP-i polümorfismi ja pärilikkuse vahel

Joonis 01: Ülekoormus

Vastav alt ül altoodud programmile luuakse A tüüpi objekt. Kui helistate obj.sum(); see annab meetodiga sum() seotud väljundi. Obj.sum(2, 3) kutsumisel; see annab väljundi, mis on seotud summaga (int a, int b). Võib täheldada, et ühel ja samal objektil on olenev alt olukorrast erinev käitumine. Kui on mitu sama nimega, kuid erinevate parameetritega meetodit, nimetatakse seda ülekoormamiseks. Seda nimetatakse ka staatiliseks sidumiseks või kompileerimisaja polümorfismiks.

Alustamine

Teine polümorfismi tüüp on ülekaalukas. Vaadake allolevat Java keeles kirjutatud programmi.

Polümorfismi ja pärilikkuse erinevus OOP_Joonis 02
Polümorfismi ja pärilikkuse erinevus OOP_Joonis 02

Joonis 02: Alistamine

Vastav alt ül altoodud programmile on klassis A olemas meetod display(). Klass B ulatub klassist A. Seetõttu on klassis B juurdepääs kõigile klassi A meetoditele. See on pärimine. Pärimise kontseptsiooni kirjeldatakse täpsem alt hiljem.

Ka B-klassil on sama kuvamismeetod(). A-tüüpi objekti loomisel ja kuvamismeetodi kutsumisel annab väljund B. A-klassi kuvamismeetodi tühistab klassi B kuvamismeetod. Seega on väljund B.

Kui on olemas sama nime ja samade parameetritega, kuid kahes erinevas klassis olevad meetodid ning need on seotud pärimisega, nimetatakse seda alistamiseks. Seda tuntakse ka kui hilist sidumist, dünaamilist sidumist, käitusaegset polümorfismi. Ülekoormust ja ületamist nimetatakse polümorfismiks. See on objektorienteeritud programmeerimise põhikontseptsioon.

Mis on OOP-i pärimine?

Vaadake allolevat Java keeles kirjutatud programmi.

Peamised erinevused OOP-i polümorfismi ja pärilikkuse vahel
Peamised erinevused OOP-i polümorfismi ja pärilikkuse vahel

Joonis 03: Pärimise näide

Vastav alt ül altoodud programmile on klassil A meetod sum() ja klassil B meetod sub().

Klassi A summa() meetodit saab kasutada klassis B, kasutades laiendussõna. Olemasoleva klassi atribuutide ja meetodite taaskasutamist uue klassi loomiseks nimetatakse pärimiseks. Isegi klassis B puudub sum() meetod; see on päritud klassist A. Pärand on kasulik koodi korduvkasutatavuse jaoks. Vanemat klassi nimetatakse baasklassiks, superklassiks või vanemklassiks. Tuletatud klassi nimetatakse alamklassiks või alamklassiks.

Pärimise tüübid

Pärimist on mitut tüüpi. Need on ühetasandiline pärand, mitmetasandiline pärimine, mitmekordne pärimine, hierarhiline pärand ja hübriidpärand.

Üksikpärand

Single Heritance puhul on üks superklass ja üks alamklass. Kui klass A on superklass ja klass B on alamklass, on klassis B juurdepääsetavad kõik klassi A omadused ja meetodid. On ainult üks tase; seetõttu nimetatakse seda ühetasandiliseks pärandiks.

Mitmetasemeline pärand

Mitmetasemelises pärandis on kolm klasside taset. Vaheklass pärineb superklassist. Alamklass pärineb vaheklassilt. Kui on kolm klassi A, B ja C ning A on superklass ja B on vaheklass. Siis pärib B A-lt ja C pärib B-lt, see on mitmetasandiline pärand.

Mitmekordne pärimine

Mitme pärimise puhul on palju superklasse ja üks alamklass. Kui on kolm superklassi nimega A, B, C ja D on alamklass, siis klass D saab pärida klassidest A, B ja C. Programmeerimiskeeles C++ toetab mitmikpärimist. Seda ei toetata programmeerimiskeeltes, nagu Java või C. Nendes keeltes kasutatakse mitme pärimise juurutamiseks liideseid.

Hierarhiline pärand

Kui superklassidena on klasse, mida nimetatakse A-ks ja B, C on alamklassid, võivad need alamklassid pärida klassi A omadusi ja meetodeid. Sellist pärimistüüpi nimetatakse hierarhiliseks pärandiks.

Hübriidpärand

On veel üks spetsiaalne pärimise tüüp, mida tuntakse hübriidpärandina. See on mitmetasandilise ja mitme pärandi kombinatsioon. Kui A, B, C ja D on klassid ning B pärib A-lt ja D pärib nii B-lt kui ka C-lt, siis on tegemist hübriidpärandiga.

Millised on OOP-i polümorfismi ja pärilikkuse sarnasused?

Mõlemad on objektorienteeritud programmeerimise kontseptsioonid

Mis vahe on polümorfismil ja pärilikkusel OOP-is?

OOP-i polümorfism vs pärand

Polümorfism on objekti võime käituda mitmel viisil. Pärimine tähendab uue klassi loomist olemasoleva klassi atribuute ja meetodeid kasutades.
Kasutus
Polümorfismi kasutatakse objektide puhul, mida kompileerimise ja käitusaja vormis meetodeid kutsuda. Pärimist kasutatakse koodi taaskasutamiseks.
Rakendamine
Polümorfismi rakendatakse meetodites. Pärimist rakendatakse klassides.
Kategooriad
Polümorfismi võib jagada ülekoormamiseks ja alistamiseks. Pärimise võib jagada ühetasandiliseks, mitmetasandiliseks, hierarhiliseks, hübriidseks ja mitmeks pärandiks.

Kokkuvõte – polümorfism vs pärilikkus OOP-is

Polümorfism ja pärimine on objektorienteeritud programmeerimise peamised mõisted. Erinevus OOP-i polümorfismi ja pärilikkuse vahel seisneb selles, et polümorfism on ühine liides mitmele vormile ja pärimine on uue klassi loomine, kasutades olemasoleva klassi atribuute ja meetodeid. Mõlemat mõistet kasutatakse tarkvaraarenduses laialdaselt.

Laadige PDF-i alla OOP-i polümorfism vs pärand

Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Laadige PDF-versioon alla siit. Erinevus polümorfismi ja pärilikkuse vahel OOP

Soovitan: