Dediščina proti vsebini
Dediščina in vsebina sta dva pomembna pojma, ki ju najdemo v OOP (Objektno orientiran programski primer: C ++). Preprosto povedano, vsebina in dedovanje obravnavata zagotavljanje dodatnih lastnosti ali vedenja razredu. Dedovanje je sposobnost razreda, da deduje lastnosti in vedenje od nadrejenega razreda tako, da ga razširi. Po drugi strani je Containership sposobnost razreda, da kot člane vsebuje predmete različnih razredov.
Kaj je dedovanje?
Kot že omenjeno, je dedovanje sposobnost, da razred podeduje lastnosti in vedenje od nadrejenega razreda tako, da ga razširi. Dedovanje v bistvu omogoča ponovno uporabo kode, tako da omogoča razširitev lastnosti in obnašanja obstoječega razreda na novo definiran razred. Če se razred A razširi B, potem se razred B imenuje nadrejeni razred (ali super razred), razred A pa se imenuje nadrejeni razred (ali izpeljan razred / pod razred). V tem primeru scenarij bo razred A podedoval vse javne in zaščitene atribute in metode super razreda (B). Podrazred lahko po izbiri nadomešča (zagotavlja nove ali razširjene funkcionalnosti metodam) vedenje, podedovano od nadrejenega razreda. Dedovanje predstavlja odnos "je-a" v OOP. To v bistvu pomeni, da je A tudi B. Z drugimi besedami, B je lahko razred s splošnim opisom določenega stvarnega sveta, vendar A določa določeno specializacijo. V resničnem problematiki programiranja bi lahko razred Person podaljšali in ustvarili razred Employee. Temu pravimo specializacija. Lahko pa najprej ustvarite tudi razred Employee in ga nato tudi posplošite v razred Person (tj. Posploševanje). V tem primeru bo zaposleni imel vse lastnosti in obnašanje osebe (tj. Uslužbenec je tudi oseba) in lahko vsebuje tudi nekaj dodatnih funkcij (torej oseba ni zaposleni).
Kaj je Containership?
Vsebnost je sposobnost razreda, da vsebuje predmete različnih razredov kot članske podatke. Na primer, razred A lahko vsebuje predmet razreda B kot člana. Tu se lahko vse javne metode (ali funkcije), definirane v B, izvajajo znotraj razreda A. Razred A postane vsebnik, medtem ko razred B postane razred, ki ga vsebuje. Zabojništvo se imenuje tudi sestava. V tem primeru lahko rečemo, da je razred A sestavljen iz razreda B. V OOP-u vsebništvo predstavlja razmerje »ima-a«. Pomembno je opozoriti, da čeprav vsebnik ima dostop do izvajanja vseh javnih metod razreda, ki ga vsebuje, pa ne more spremeniti ali zagotoviti dodatne funkcionalnosti. Ko gre za resnično programsko težavo, je lahko predmet razreda TextBox vsebovan v razredu Form in tako lahko rečemo, da obrazec vsebuje TextBox (ali pa je obrazec sestavljen iz TextBoxa).
Razlika med dedovanjem in vsebino
Čeprav sta dedovanje in vsebinska vsebina dva koncepta OOP, se precej razlikujeta v tem, kar programerju omogočata. Dedovanje je sposobnost razreda, da podeduje lastnosti in vedenje od nadrejenega razreda tako, da ga razširi, medtem ko je Containership zmožnost razreda, da kot članske podatke vsebuje predmete različnih razredov. Če se razred razširi, podeduje vse javne in zaščitene lastnosti / vedenje in ta vedenja lahko preglasijo podrazred. Če pa je razred vsebovan v drugem, vsebnik ne dobi zmožnosti spreminjanja ali dodajanja vedenja v vsebovani. Dedovanje predstavlja odnos "je-a" v OOP-ju, medtem ko vsebina predstavlja odnos "ima-a".