Rozdiel medzi jednoduchým dedením a viacnásobným dedením

Posledná aktualizácia: 06/05/2023

Dedičnosť je jedným z kľúčových pojmov v programovaní objektovo orientovaný. Umožňuje triede zdediť vlastnosti a metódy inej triedy.

Jednoduché dedičstvo

Jednoduché dedenie je, keď trieda dedí iba vlastnosti a metódy z nadradenej triedy. Predstavte si, že máte triedu rodičov s názvom „Zviera“ a triedu detí s názvom „Pes“. Trieda „Pes“ by zdedila metódy a vlastnosti triedy „Zviera“, medzi inými napríklad „jesť“, „spať“, „dýchať“.

viacnásobné dedičstvo

Viacnásobné dedičstvo je, keď trieda zdedí vlastnosti a metódy z viac ako jednej nadradenej triedy. Inými slovami, podradená trieda môže mať viacero rodičovských tried. Tento typ dedenia je možný v niektorých programovacích jazykoch, ako je C++, ale nie v iných, ako je Java.

Prečo nie je povolené viacnásobné dedenie vo všetkých programovacích jazykoch?

Viacnásobné dedičstvo môže viesť k problémom s nejednoznačnosťou. Inými slovami, ak dve nadradené triedy majú metódy alebo vlastnosti s rovnakým názvom, nemusí byť jasné, ktorú z týchto metód alebo vlastností použiť pre podradenú triedu. Z tohto dôvodu niektoré programovacie jazyky neumožňujú viacnásobné dedenie.

Exkluzívny obsah – kliknite sem  Čo znamená #!/bin/bash a prečo by ste ho mali používať

Zoznam programovacích jazykov, ktoré podporujú viacnásobnú dedičnosť:

  • C++
  • Python
  • Rubín

Zoznam programovacích jazykov, ktoré NEpodporujú viacnásobnú dedičnosť:

  • Jáva
  • C#
  • PHP

Na záver, jednoduchá a viacnásobná dedičnosť sú dva kľúčové pojmy v objektovo orientovanom programovaní. Jednoduché dedenie znamená, že podriadená trieda môže dediť vlastnosti a metódy iba z jednej nadradenej triedy, zatiaľ čo viacnásobné dedenie znamená, že podriadená trieda môže dediť vlastnosti a metódy z viac ako jednej nadradenej triedy. Je dôležité poznamenať, že nie všetky programovacie jazyky umožňujú viacnásobné dedenie kvôli možnej nejednoznačnosti metód a vlastností.

Uistite sa, že rozumiete rozdielu medzi týmito dvoma kľúčovými pojmami v objektovo orientovanom programovaní!