„Erfðir (forritun)“: Munur á milli breytinga

Úr Wikipediu, frjálsa alfræðiritinu
Efni eytt Efni bætt við
m viðbót
SieBot (spjall | framlög)
Lína 26: Lína 26:


[[Flokkur:Hugbúnaðarfræði]]
[[Flokkur:Hugbúnaðarfræði]]



[[ca:Herència (programació)]]
[[ca:Herència (programació)]]
Lína 32: Lína 31:
[[en:Inheritance (computer science)]]
[[en:Inheritance (computer science)]]
[[es:Herencia (programación orientada a objetos)]]
[[es:Herencia (programación orientada a objetos)]]
[[fi:Perintä (ohjelmointi)]]
[[fr:Héritage (informatique)]]
[[fr:Héritage (informatique)]]
[[it:Ereditarietà (informatica)]]
[[it:Ereditarietà (informatica)]]
[[ja:継承]]
[[lt:Paveldėjimas (programavimas)]]
[[lt:Paveldėjimas (programavimas)]]
[[nl:Overerving (informatica)]]
[[nl:Overerving (informatica)]]
[[ja:継承]]
[[pl:Dziedziczenie (programowanie obiektowe)]]
[[pl:Dziedziczenie (programowanie obiektowe)]]
[[pt:Herança (informática)]]
[[pt:Herança (programação)]]
[[ru:Наследование (программирование)]]
[[ru:Наследование (программирование)]]
[[fi:Perintä (ohjelmointi)]]
[[sv:Arv (programmering)]]
[[sv:Arv (programmering)]]
[[ta:மரபியல்பு (கணினியியல்)]]
[[ta:மரபியல்பு (கணினியியல்)]]

Útgáfa síðunnar 21. júní 2007 kl. 07:51

Í hlutbundinni forritun eru erfðir notaðar til þess að láta nýskilgreinda klasa erfa eiginleika frá öðrum klösum sem hafa verið skilgreindir. Klasar sem erfa frá öðrum klösum eru kallaðir afleiddir klasar og taka yfir eða erfa eiginleika og hegðun annars klasa sem yfirleitt er kallaður grunnklasi. Erfðir eru notaðar í öllum helstu forritunarmálum samtímanns, þær eru ómissandi hluti af hlutbundinni forritun. Þegar einn klasi erfir annann þá er hægt að nota allar skilgreindar aðferðir í arfleidda klasanum í notkun klasans.

Erfðir eru oft kallaðar alhæfing (e. generalization), því til verður samband á milli klasanna sem kallað er "is-a" á ensku. Sem dæmi, "ávöxtur" er líka "epli" og "appelsína". Við segjum að ávöxtur sé óhlutstætt hugtak um epli, appelsínu o.s.frv. Þannig að við getum sagt, úr því að "epli sé ávöxtur", að epli erfi alla eiginleika sem eru sameiginlegir öllum ávöxtum. Þannig er "ávöxtur" einnig "matvæli", og þannig má fara fram og til baka.

Dæmi um erfðir í Java kóða:

class Mammal extends Animal {
  Hair m_h;
  Breasts m_b;
  
  Mammal reproduce() {
    Mammal offspring;
    
    super.reproduce();
    if (is_female()) {
      offspring = super.give_birth();
      offspring.breastfeed(m_b);
    }
    care_for_young(offspring);
    return offspring;
  }
}

Fjölerfðir

Sum forritunarmál, til dæmis Perl, styðja fjölerfðir. Þar er hægt að búa til klasa sem erfa eiginleika frá mörgum grunnklösum. Þannig gæti klasi sem kallaðist "hundur" verið afleiddur frá klösunum "spendýr" og frá "gæludýr".