Kaj pomeni “večkratno dedovanje”?

Ko govorimo o objektno usmerjenih programskih jezikih (OOP), je večkratno dedovanje izraz, ki se nanaša na razred, ki podeduje funkcionalnost več kot enega nadrejenega razreda. Izraza ni mogoče v celoti razumeti, ne da bi razumeli, kaj je razred. Zelo kratka definicija razreda je niz programskih navodil ali kode v OOP jeziku, ki opisuje in je bistvo entitete. Razredi definirajo vse lastnosti entitete in vsebujejo vse metode, potrebne za manipuliranje s temi lastnostmi.

Glede na program, ki se kodira, bo morda treba napisati veliko razredov, ki imajo skupne stvari, vendar morajo ostati ločene entitete. Tu pride v poštev večkratno dedovanje. Na primer, tehnološki napredek, ki bi omogočil gradnjo podmornice, ki bi lahko letelo kot letalo, ali letala, ki bi se lahko potopilo kot podmornica, bi ustvaril hibridni izdelek. Ta hibrid bi imel nekatere enake lastnosti kot letalo in nekatere lastnosti podmornice, vendar bi bil edinstven izdelek ali entiteta. Večkratno dedovanje bi hibridu zlahka omogočilo, da podeduje funkcionalnost iz razreda letala in funkcionalnost iz razreda podmornice hkrati brez kopiranja kode.

Drug način razlage večkratnega dedovanja je, da rečemo, da omogoča, da več kot en razred deluje kot osnova za druge razrede. Uporaba večkratnega dedovanja namesto preprostega kopiranja kode iz enega ali več razredov v drugega ima prednosti. Napake v programih pogosto potrebujejo čas, da jih odkrijejo, ko pa jih odkrijemo, jih je treba čim prej odpraviti. Če je koda, ki vsebuje napake, kopirana v več razredov, morajo programerji uporabiti isti popravek za vsako kopijo kode. Kadar je uporabljeno večkratno dedovanje, bi moral delati s kodo samo izvirnega razreda, iz katerega vsi podrazredi podedujejo funkcionalnost.

Vsi programski jeziki ne podpirajo večkratnega dedovanja, tudi če podpirajo objektno usmerjenost. Za nekatere različice nekaterih jezikov se lahko trdi, da ga podpirajo, medtem ko v resnici podpirajo dedovanje samo dveh razredov. Razredi, iz katerih drugi razredi podedujejo funkcionalnost, se pogosto imenujejo »nadrejeni« razredi ali »superrazredi«, razredi, ki podedujejo, pa se imenujejo »otroški« razredi ali »podrazredi«. Programerjem, ki jih zanima delo z razredi na ta način, močno svetujemo, da najprej pridobijo dobro znanje o osnovah razredov, preden poskušajo izkoristiti moč večkratnega dedovanja, ker se napake ali slabe prakse kodiranja v nadrejenem razredu prenašajo. v otroški razred.