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

Úr Wikipediu, frjálsa alfræðiritinu
Efni eytt Efni bætt við
Jóna Þórunn (spjall | framlög)
mEkkert breytingarágrip
Spm (spjall | framlög)
m Mikil tiltekt!
Lína 1: Lína 1:
Í hlutbundinn forritun eru '''erfðir''' leið til að búa til nýja klasa, tilvik sem eru kallaði hlutir þar sem notaðir eru klasar sem hafa þegar verið skilgreindir. Klasar sem erfa frá öðrum klösum eru kallaðir ''afleiddir'' klasar og taka yfir eða erfa eiginleika og hegðun klasa sem yfirleitt er kallað grunnklasi.
Í [[hlutbundin forritun|hlutbundinni forritun]] eru '''erfðir''' notaðir til þessláta nýskilgreinda [[klasi|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 klasa sem yfirleitt er kallað grunnklasi.


Erfðir er 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 af 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.
Erfðir er 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 af 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 eru "ávöxtur" einnig "matvæli", og þannig má fara fram og til baka.


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


class Mammal extends Animal
class Mammal extends Animal {
{
Hair m_h;
Hair m_h;
Breasts m_b;
Breasts m_b;
Mammal reproduce()
Mammal reproduce() {
{
Mammal offspring;
Mammal offspring;
super.reproduce();
super.reproduce();
if (is_female())
if (is_female()) {
{
offspring = super.give_birth();
offspring = super.give_birth();
offspring.breastfeed(m_b);
offspring.breastfeed(m_b);
Lína 24: Lína 21:
}
}
}
}

== 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".

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

Útgáfa síðunnar 5. maí 2006 kl. 19:54

Í hlutbundinni forritun eru erfðir notaðir 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 klasa sem yfirleitt er kallað grunnklasi.

Erfðir er 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 af 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 eru "á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".