Diferenco inter simpla heredo kaj multobla heredo

Lasta ĝisdatigo: 06/05/2023

Heredo estas unu el la ŝlosilaj konceptoj en programado objektorientita. Permesas al klaso heredi la trajtojn kaj metodojn de alia klaso.

Simpla heredo

Simpla heredo estas kiam klaso nur heredas trajtojn kaj metodojn de gepatra klaso. Imagu, ke vi havas gepatran klason nomatan "Besto" kaj infanan klason nomatan "Hundo". La "Hundo" klaso heredus la metodojn kaj trajtojn de la "Besta" klaso, kiel ekzemple "manĝi", "dormi", "spiri", inter aliaj.

Multobla heredo

Multobla heredo estas kiam klaso heredas trajtojn kaj metodojn de pli ol unu gepatra klaso. Alivorte, infanklaso povas havi plurajn gepatrajn klasojn. Ĉi tiu speco de heredo eblas en iuj programlingvoj kiel C++, sed ne en aliaj kiel Java.

Kial multobla heredo ne estas permesita en ĉiuj programlingvoj?

Multobla heredo povas konduki al ambiguecproblemoj. Alivorte, se du gepatraj klasoj havas metodojn aŭ trajtojn kun la sama nomo, eble ne estas klare, kiun el tiuj metodoj aŭ trajtoj uzi por la infanklaso. Tial iuj programlingvoj ne permesas multoblan heredon.

Ekskluziva enhavo - Klaku Ĉi tie  Ĉu vi konfuzas inter tokenringo kaj Eterreto?: Lernu la ŝlosilajn diferencojn por pli efika reto

Listo de programlingvoj kiuj subtenas multoblan heredon:

  • C++
  • Pitono
  • Rubeno

Listo de programlingvoj, kiuj NE subtenas multoblan heredon:

  • Java
  • C#
  • PHP

En konkludo, simpla heredo kaj multobla heredo estas du ŝlosilaj konceptoj en objekt-orientita programado. Simpla heredo implicas ke infanklaso povas nur heredi trajtojn kaj metodojn de unu gepatra klaso, dum multobla heredo implicas ke infanklaso povas heredi trajtojn kaj metodojn de pli ol unu gepatra klaso. Gravas noti, ke ne ĉiuj programlingvoj permesas multoblan heredon pro ebla ambigueco en metodoj kaj propraĵoj.

Certiĝu, ke vi komprenas la diferencon inter ĉi tiuj du ŝlosilaj konceptoj en objekt-orientita programado!