- Značilnosti dedovanja
- Hierarhija
- Polimorfizem
- Vrste dedovanja
- Edinstveno dedovanje
- Večstopenjsko dedovanje
- Hierarhično dedovanje
- Hibridno dedovanje
- Večkratno dedovanje
- Vrste dedovanja iz osnovnega razreda
- Javno dediščino
- Zaščiteno dedovanje
- Zasebno dedovanje
- Primeri
- Primer Pythona
- Primer v C ++
- Reference
Dediščino v objektno - usmerjeno programiranje je način za organiziranje predmetov v hierarhiji od splošnih do specifičnih. Pripomoček je namenjen razširitvi razreda v drug razred, pri čemer se ohrani analogna izvedba.
V večini razrednih objektno usmerjenih jezikov objekt, ustvarjen z dedovanjem, imenovan podrejeni objekt, dobi vse lastnosti in vedenja nadrejenega predmeta.

Preprost dokaz dedovanja v orientaciji predmeta. Vir: Pluke / CC0 Creative Commons CC0 1.0 Universal Public Domain
Zato je kakovost, ki predstavlja odnos med različnimi razredi. Dedovanje razredu omogoča isto vedenje kot drug razred in ga tako vedenje razširi ali prilagodi tako, da zagotovi posebne ukrepe za posebne potrebe.
Dedovanje lahko pomaga predstavljati predmete, ki imajo nekatere razlike in nekaj podobnosti v načinu dela. Vse funkcionalnosti skupnih predmetov lahko postavite v osnovni razred in nato določite enega ali več podrazredov s svojo lastno funkcionalnostjo.
Značilnosti dedovanja
Dedovanje je ena ključnih značilnosti objektno usmerjenega programiranja, ki se uporablja za definiranje novega razreda iz obstoječih razredov.
To pomeni, da nove razrede lahko izpeljemo iz obstoječih osnovnih razredov in jim dodamo nove funkcije. Ni vam treba pisati iz nič. Zato dedovanje omogoča enostavno uporabo obstoječe kode.
Če že imate razred, ki naredi skoraj vse, kar želite, lahko ustvarite podrazred, v katerem je del njegovega vedenja delno razveljavljen ali pa je morda dodana kakšna nova funkcionalnost.
Izvedeni razred podeduje vse metode osnovnega razreda, razen naslednjih:
- Konstruktorji, destruktorji in konstruktorji kopij osnovnega razreda.
- Operaterji so preobremenjeni iz osnovnega razreda.
- Osnovne funkcije prijazne funkcije.
Hierarhija
Tako kot družinsko drevo dedovanje služi hierarhiji razredov. Pomembno je upoštevati, da bodo atributi, določeni za osnovni razred, samodejno prisotni v izpeljanem razredu. Prav tako bodo metode za osnovni razred delovale za izpeljane.
Razred naj bi bil podrazred razreda, iz katerega podeduje. Po drugi strani pa bo ta razred vaš super razred. Najbolj generičen razred lahko imenujemo osnovni razred, saj je na dnu hierarhije.
Polimorfizem
Dedovanje je v nekaterih jezikih s statičnimi tipi zelo priljubljeno, saj programerju omogoča, da se izogne nekaterim omejitvam statičnega tipa.
Predmet, ki podeduje od drugega predmeta, velja za podvrsto tega predmeta. Primer sta lahko predmeta "inštruktor" in "študent", ki vsak podeduje od "osebe".
Če sta inštruktor in študent istega tipa osebe, lahko napišete funkcijo, ki tip osebe sprejme kot parameter in deluje na predmete inštruktorja in študenta, ker sta oba naslednika osebe.
Vrste dedovanja
Edinstveno dedovanje
Ko izvedeni razred podeduje lastnosti in obnašanje posameznega osnovnega razreda. Se pravi, en razred se razširi na samo še en razred.
Večstopenjsko dedovanje
Nanaša se na pripomoček, kjer lahko podedujete iz izvedenega razreda, s čimer ta izpeljani razred postane osnovni razred za nov razred. To pomeni, da se ustvari izpeljani razred iz drugega izpeljanega razreda.
Hierarhično dedovanje
V tem dedovanju mnogi podklasi dedujejo iz enega razreda. To pomeni, da se zgodi, ko en osnovni razred podeduje več kot en izvedeni razred.
Hibridno dedovanje
Iz tega izhaja dedovanje, kadar je katero koli od treh prejšnjih dediščin združeno (enojno, hierarhično in večstopenjsko).
Večkratno dedovanje
Ustreza številki dedovanja, ko razred podeduje iz več kot enega višjega razreda. Pomanjkljivost te vrste dedovanja je, da bo izpeljani razred obvladoval odvisnost, ki jo ima od dveh osnovnih razredov.
Po drugi strani pa ta vrsta dedovanja programerjem omogoča, da gradijo razrede, ki združujejo vidike več razredov in ustrezne hierarhije.
Vrste dedovanja iz osnovnega razreda
Javno dediščino
Ko razred izhaja iz javnega osnovnega razreda, postanejo javni pripadniki osnovnega razreda javni člani izpeljanega razreda, zaščiteni pripadniki osnovnega razreda pa zaščiteni pripadniki izpeljanega razreda.
Zasebni člani nadrejenega razreda nikoli ne bodo dostopni neposredno iz izpeljanega razreda, do njih pa lahko dostopate prek klicev javnosti in zaščitenih pripadnikov osnovnega razreda.
Zaščiteno dedovanje
Ko se ustvari razred, ki podeduje od zaščitenega nadrazreda, bodo tako javni kot zaščiteni člani tega nadrednega razreda postali zaščiteni člani izpeljanega razreda.
Zasebno dedovanje
Ko je podrazred ustvarjen iz zasebnega nadrazreda, bodo javni in zaščiteni člani tega nadklasa postali zasebni člani podrazreda.
Primeri
Primer Pythona
Za prikaz, kako deluje princip dedovanja, bomo vzeli robote ali boljši razred robotov v programskem jeziku Python. Če želite to narediti, bo določen razred, imenovan RobotMédico (PhysicianRobot), ki izhaja iz superklasa Robot.

Če pogledate kodo razreda RobotMédico, lahko vidite, da v tem razredu ni definiran noben atribut ali metoda.
Ker je razred RobotMedico podrazred razreda Robot, v tem primeru podeduje tako __init__ kot say_hi metode. Dedovanje teh metod pomeni, da jih je mogoče uporabiti, kot da so bile opredeljene v razredu RobotMédico.
Ko se ustvari primerek RobotMedico, bo funkcija __init__ ustvarila tudi atribut imena. Metodo say_hi lahko uporabimo na predmetu y y RobotMédico, kot je razvidno iz rezultata prejšnje kode.
Primer v C ++
Razred lahko podeduje iz več razredov, kar pomeni, da lahko podeduje podatke in funkcije iz več superklasov. Za določitev izpeljanega razreda uporabite seznam izpeljave razredov, da podate osnovne razrede.
Seznam izpeljave razredov v C ++ poimenuje enega ali več osnovnih razredov in ima naslednjo obliko: razred izpeljanega razreda: osnovni razred specifikatorja dostopa, kjer je specifikator dostopa javni, zaščiten ali zaseben, osnovni razred pa ime predhodno definiranega razreda. Če specifikator dostopa ni uporabljen, se privzeto vzame zasebno.
Nadrazred "Oblika" in iz njega izpeljani razred "Pravokotnik" lahko štejemo na naslednji način:

Ko je zgornja koda sestavljena in izvedena, se pojavi naslednji izhod: "Skupna površina: 35".
Reference
- Dave Braunschweig (2020). Dediščina in polimorfizem. Skupnost Rebus. Vzeto iz: press.rebus.community.
- Tečaj Python (2020). Dedovanje. Izvedeno iz: python-course.eu.
- Podatkovni mentor (2020). R Dedovanje Vzeto iz: datamentor.io.
- Točka za vaje (2020). C ++ dedovanje. Vzeto iz: tutorialspoint.com.
- Neto informacije (2020). Različne vrste dedovanja. Vzeto iz: net-informations.com.
