Razlika med polimorfizmom in dedovanjem v OOP

Kazalo:

Razlika med polimorfizmom in dedovanjem v OOP
Razlika med polimorfizmom in dedovanjem v OOP

Video: Razlika med polimorfizmom in dedovanjem v OOP

Video: Razlika med polimorfizmom in dedovanjem v OOP
Video: Difference between inheritance and polymorphism | Java tutorial for beginners part 13. 2024, November
Anonim

Ključna razlika – polimorfizem proti dedovanju v OOP

Objektno usmerjeno programiranje (OOP) se običajno uporablja za razvoj programske opreme. Mnogi programski jeziki podpirajo objektno orientirano programiranje. Objektno orientirano programiranje je metodologija za načrtovanje programa z uporabo razredov in objektov. Razred v OOP je načrt za ustvarjanje predmeta. Razred ima lastnosti in metode. Objekt je primerek razreda. OOP vsebuje štiri stebre, kot so dedovanje, polimorfizem, abstrakcija in enkapsulacija. Ta članek obravnava razliko med polimorfizmom in dedovanjem v OOP. Ključna razlika med polimorfizmom in dedovanjem v OOP je, da je polimorfizem zmožnost predmeta, da se obnaša na več načinov, dedovanje pa ustvari nov razred z uporabo lastnosti in metod obstoječega razreda.

Kaj je polimorfizem v OOP?

Polimorfizem označuje več oblik. En objekt ima lahko več vedenj. Polimorfizem lahko razdelimo v dve kategoriji. So preobremenitve in preglasitve.

Preobremenitev

Glejte spodnji program, napisan v Javi.

Razlika med polimorfizmom in dedovanjem v OOP
Razlika med polimorfizmom in dedovanjem v OOP

Slika 01: Preobremenitev

Po zgornjem programu se ustvari objekt tipa A. Pri klicu obj.sum(); dal bo izhod, povezan z metodo sum(). Pri klicu obj.sum(2, 3); dal bo izhod, povezan z vsoto (int a, int b). Opazimo lahko, da ima isti predmet različno vedenje glede na situacijo. Če obstaja več metod z istim imenom, vendar z različnimi parametri, je to znano kot preobremenitev. Znan je tudi kot statična vezava ali polimorfizem časa prevajanja.

Preglasitev

Druga vrsta polimorfizma je prevladujoča. Oglejte si spodnji program, napisan v Javi.

Razlika med polimorfizmom in dedovanjem v OOP_Slika 02
Razlika med polimorfizmom in dedovanjem v OOP_Slika 02

Slika 02: Preglasitev

Glede na zgornji program obstaja metoda display() v razredu A. Razred B se razširi iz razreda A. Zato so vse metode v razredu A dostopne razredu B. To je dedovanje. Koncept dedovanja je opisan kasneje.

Razred B ima tudi isto metodo display(). Ko ustvarite objekt tipa A in pokličete metodo prikaza, bo rezultat dal B. Metoda prikaza razreda A je preglasena z metodo prikaza razreda B. Torej, rezultat je B.

Če obstajajo metode z istim imenom in enakimi parametri, vendar v dveh različnih razredih, in so povezane z dedovanjem, je to znano kot preglasitev. Znan je tudi kot pozna vezava, dinamična vezava, izvajalni polimorfizem. Preobremenitev in preglasitev se imenujeta polimorfizem. Je glavni koncept v objektno usmerjenem programiranju.

Kaj je dedovanje v OOP?

Glejte spodnji program, napisan v Javi.

Ključna razlika med polimorfizmom in dedovanjem v OOP
Ključna razlika med polimorfizmom in dedovanjem v OOP

Slika 03: Primer dedovanja

Glede na zgornji program ima razred A metodo sum(), razred B pa metodo sub().

Metodo sum() razreda A je mogoče uporabiti v razredu B z uporabo ključne besede extend. Ponovna uporaba lastnosti in metod v obstoječem razredu za ustvarjanje novega razreda je znana kot dedovanje. Tudi v razredu B ni metode sum(); podedovano je iz razreda A. Dedovanje je uporabno za ponovno uporabo kode. Starejši razred se imenuje osnovni razred, nadrazred ali nadrejeni razred. Izpeljani razred se imenuje podrazred ali podrejeni razred.

Vrste dedovanja

Obstajajo različne vrste dedovanja. To so enonivojsko dedovanje, večnivojsko dedovanje, večkratno dedovanje, hierarhično dedovanje in hibridno dedovanje.

Enojno dedovanje

Pri enotnem dedovanju obstajata en nadrazred in en podrazred. Če je razred A nadrazred in razred B podrazred, so vse lastnosti in metode razreda A dostopne razredu B. Obstaja samo ena raven; zato se imenuje enonivojsko dedovanje.

Dedovanje na več ravneh

V večnivojskem dedovanju obstajajo tri ravni razredov. Vmesni razred podeduje super razred. Podrazred podeduje vmesni razred. Če obstajajo trije razredi, kot so A, B in C, je A nadrazred, B pa vmesni razred. Potem B deduje od A in C deduje od B, to je dedovanje na več ravneh.

Večkratno dedovanje

V večkratnem dedovanju je veliko nadrazredov in en podrazred. Če obstajajo trije nadrazredi, imenovani A, B, C in D, je podrazred, potem lahko razred D deduje od A, B in C. Večkratno dedovanje je podprto v programskem jeziku C++. Ni podprt v programskih jezikih, kot sta Java ali C. Vmesniki se uporabljajo za izvajanje večkratnega dedovanja v teh jezikih.

Hierarhično dedovanje

Če obstajajo razredi, imenovani A kot nadrazredi, B, C pa sta podrazreda, lahko ti podrazredi podedujejo lastnosti in metode razreda A. Ta vrsta dedovanja je znana kot hierarhično dedovanje.

Hibridno dedovanje

Obstaja še ena posebna vrsta dedovanja, ki je znana kot hibridno dedovanje. Je kombinacija večnivojskega in večkratnega dedovanja. Če so A, B, C in D razredi in B deduje od A in D deduje od obeh B in C, potem je to hibridno dedovanje.

Kakšne so podobnosti med polimorfizmom in dedovanjem v OOP?

Oba sta koncepta objektno usmerjenega programiranja

Kakšna je razlika med polimorfizmom in dedovanjem v OOP?

Polimorfizem proti dedovanju v OOP

Polimorfizem je sposobnost predmeta, da se obnaša na več načinov. Dedovanje je ustvariti nov razred z uporabo lastnosti in metod obstoječega razreda.
Uporaba
Polimorfizem se uporablja za objekte, ki kličejo katero obliko metod v času prevajanja in med izvajanjem. Dedovanje se uporablja za ponovno uporabnost kode.
Izvedba
Polimorfizem je implementiran v metode. Dedovanje je implementirano v razredih.
Kategorije
Polimorfizem lahko razdelimo na preobremenitev in preglasitev. Dedovanje lahko razdelimo na enonivojsko, večnivojsko, hierarhično, hibridno in večkratno dedovanje.

Povzetek – Polimorfizem proti dedovanju v OOP

Polimorfizem in dedovanje sta glavna pojma v objektno usmerjenem programiranju. Razlika med polimorfizmom in dedovanjem v OOP je v tem, da je polimorfizem skupni vmesnik za več oblik, dedovanje pa ustvari nov razred z uporabo lastnosti in metod obstoječega razreda. Oba koncepta se pogosto uporabljata pri razvoju programske opreme.

Prenesite PDF Polimorfizem proti dedovanju v OOP

Lahko prenesete PDF različico tega članka in jo uporabite za namene brez povezave v skladu z opombo o citiranju. Prenesite PDF različico tukaj Razlika med polimorfizmom in dedovanjem v OOP

Priporočena: