Skillnaden mellan enkelt arv och multipelt arv

Senaste uppdateringen: 06/05/2023
Författare: Sebastian Vidal

Arv är ett av nyckelbegreppen inom programmering objektorienterad. Tillåter en klass att ärva egenskaperna och metoderna för en annan klass.

Enkelt arv

Enkelt arv är när en klass bara ärver egenskaper och metoder från en överordnad klass. Föreställ dig att du har en föräldraklass som heter "Djur" och en barnklass som heter "Hund". Klassen "Hund" skulle ärva metoderna och egenskaperna hos klassen "Animal", som "äta", "sova", "andas", bland annat.

multipelt arv

Multipelt arv är när en klass ärver egenskaper och metoder från mer än en överordnad klass. Med andra ord kan en barnklass ha flera föräldraklasser. Denna typ av arv är möjlig i vissa programmeringsspråk som C++, men inte i andra som Java.

Varför är inte multipelt arv tillåtet i alla programmeringsspråk?

Multipelarv kan leda till oklarhetsproblem. Med andra ord, om två överordnade klasser har metoder eller egenskaper med samma namn, kanske det inte är klart vilken av dessa metoder eller egenskaper som ska användas för den underordnade klassen. Av denna anledning tillåter vissa programmeringsspråk inte flera arv.

Exklusivt innehåll - Klicka här  API: Vad det är och vad det är till för

Lista över programmeringsspråk som stöder flera arv:

  • C + +
  • Python
  • Rubin

Lista över programmeringsspråk som INTE stöder multipelt arv:

  • java
  • C#
  • PHP

Sammanfattningsvis är enkelt arv och multipelt arv två nyckelbegrepp inom objektorienterad programmering. Enstaka arv innebär att en barnklass endast kan ärva egenskaper och metoder från en förälderklass, medan multipelarv innebär att en barnklass kan ärva egenskaper och metoder från mer än en förälderklass. Det är viktigt att notera att inte alla programmeringsspråk tillåter multipelt arv på grund av möjlig tvetydighet i metoder och egenskaper.

Se till att du förstår skillnaden mellan dessa två nyckelbegrepp inom objektorienterad programmering!