Objektno usmerjeno programiranje (OOP) se običajno uporablja za razvoj programske opreme. Številni programski jeziki podpirajo objektno usmerjeno programiranje. Objektno usmerjeno programiranje je metodologija oblikovanja programa z uporabo razredov in predmetov. Razred v OOP je načrt za ustvarjanje predmeta. Razred ima lastnosti in metode. Predmet je primerek razreda. OOP vsebuje štiri stebre, kot so dedovanje, polimorfizem, abstrakcija in enkapsulacija. Ta članek govori o razliki med polimorfizmom in dedovanjem v OOP. The ključna razlika med polimorfizmom in dedovanjem v OOP je to Polimorfizem je sposobnost objekta, da se vede na več načinov, dedovanje pa je ustvarjanje novega razreda z uporabo lastnosti in metod obstoječega razreda.
1. Pregled in ključne razlike
2. Kaj je polimorfizem v OOP
3. Kaj je dedovanje v OOP
4. Podobnosti polimorfizma in dedovanja v OOP
5. Primerjava ob strani - Polimorfizem in dedovanje v OOP v tabeli
6. Povzetek
Polimorfizem je označevanje več oblik. En predmet ima lahko več vedenj. Polimorfizem lahko razdelimo v dve kategoriji. Preobremenjujejo in pretiravajo.
Glejte spodnji program, napisan v Javi.
Slika 01: Preobremenitev
Po zgornjem programu se ustvari objekt tipa A. Ko kličete obj.sum (); bo dal rezultat, povezan z metodo sum (). Ko kličete obj.sum (2,3); bo dal rezultat, ki se nanaša na vsoto (int a, int b). Opazimo lahko, da ima isti predmet različna vedenja glede na situacijo. Kadar obstaja več metod z istim imenom, vendar z različnimi parametri, je znano kot preobremenjenost. Znan je tudi kot statična vezava ali sestaviti časovni polimorfizem.
Druga vrsta polimorfizma je premoč. Glejte spodnji program, napisan v Javi.
Slika 02: Prevladovanje
Glede na zgornji program obstaja prikaz metode () v razredu A. Razred B sega od razreda A. Zato so vse metode v razredu A dostopne v razredu B. To je dedovanje. Koncept dedovanja je opisan pozneje.
Razred B ima tudi prikaz iste metode (). Pri ustvarjanju predmeta tipa A in klicne metode prikaza bo izhod prikazan B. Metoda prikaza razreda razreda A je razveljavljena s prikazno metodo razreda B. Torej, izhod je B.
Če obstajajo metode z istim imenom in enakimi parametri, vendar v dveh različnih razredih in so povezane z dedovanjem, je znano kot prevladovanje. Znan je tudi kot Pozno vezavo, dinamična vezava, polimorfizem izvajanja. Preobremenjenost in pretiravanje imenujemo polimorfizem. To je glavni koncept objektno usmerjenega programiranja.
Glejte spodnji program, napisan v Javi.
Slika 03: Primer dedovanja
V skladu z zgornjim programom ima razred A vsoto metode (), razred B pa metodo sub ().
Metodo vsote () razreda A lahko uporabimo v razredu B s ključno besedo razširitev. Ponovna uporaba lastnosti in metod v obstoječem razredu za ustvarjanje novega razreda je znana kot Inheritance. Tudi v razredu B ni metode sum (); je podedovana iz razreda A. Dedovanje je uporabno za ponovno uporabo kode. Starejši razred se imenuje osnovni razred, superrazred ali matični razred. Izvedeni razred se imenuje podrazred ali otroški razred.
Obstajajo različne vrste dedovanja. Gre za enostopenjsko dedovanje, večstopenjsko dedovanje, več dedovanje, hierarhično dedovanje in hibridno dedovanje.
V enojnem dedovanju obstaja en super razred in en podklas. Če je razred A super razred, razred B pa podrazred, so vse lastnosti in metode razreda A dostopne v razredu B. Obstaja le ena raven; zato se imenuje kot enostopenjsko dedovanje.
V večstopenjskem dedovanju so tri stopnje razredov. Vmesni razred podeduje od super razreda. Podvrst podeduje od vmesnega razreda. Če obstajajo trije razredi, so A, B in C in A super razred, B pa vmesni razred. Potem B podeduje od A in C podeduje od B, gre za dedovanje na več ravneh.
V Multiple Inheritance obstaja veliko super razredov in en podklasa. Če obstajajo trije super razredi, ki jih imenujemo A, B, C in D, je podklasa, potem lahko razred D podeduje od A, B in C. V programskem jeziku C ++ je podprto večkratno dedovanje. Ni podprta v programskih jezikih, kot sta Java ali C #. Vmesniki se uporabljajo za izvajanje večkratnega dedovanja v teh jezikih.
Če obstajajo razredi, ki se imenujejo A kot super razredi in B, C so podklasi, lahko ti podrazredi podedujejo lastnosti in metode razreda A. Ta vrsta dedovanja je znana kot Hierarhična dedovanje.
Obstaja še ena posebna vrsta dedovanja, ki je znana kot hibridno dedovanje. Gre za kombinacijo večstopenjskih in večkratnih dedovanj. Če so A, B, C in D razredi in B deduje od A in D deduje od B in C, potem je to hibridno dedovanje.
Polimorfizem proti dedovanju v OOP | |
Polimorfizem je sposobnost predmeta, da se vede na več načinov. | Dedovanje je ustvariti nov razred z uporabo lastnosti in metod obstoječega razreda. |
Uporaba | |
Polimorfizem se uporablja za predmete, ki kličejo, katere metode so v času prevajanja in času izvajanja. | Dedovanje se uporablja za ponovno uporabo kode. |
Izvajanje | |
Polimorfizem izvajamo v metodah. | Dedovanje se izvaja v razredih. |
Kategorije | |
Polimorfizem lahko razdelimo na preobremenitve in prenajedanje. | Dedovanje lahko razdelimo na enostopenjsko, večstopenjsko, hierarhično, hibridno in večkratno dedovanje. |
Polimorfizem in dedovanje sta glavna koncepta objektno usmerjenega programiranja. Razlika med polimorfizmom in dedovanjem v OOP je, da je polimorfizem običajen vmesnik v več oblik, in dedovanje je ustvarjanje novega razreda z uporabo lastnosti in metod obstoječega razreda. Oba koncepta se pogosto uporabljata pri razvoju programske opreme.
Lahko prenesete PDF različico tega članka in jo uporabljate za namene brez povezave, kot je navedeno v navodilu. Prenesite PDF različico tukaj Razlika med polimorfizmom in dedovanjem v OOP