Sobes.tech
Junior — Middle

Aké sú rozdiely medzi abstraktnou triedou a rozhraním v objektovo orientovanom programovaní?

sobes.tech AI

Odpoveď od AI

Abstraktná trieda a rozhranie sú rôzne mechanizmy na opis zmlúv a správania v objektovo orientovanom programovaní, ale s kľúčovými rozdielmi:

  • Abstraktná trieda môže obsahovať ako abstraktné (bez implementácie), tak aj konkrétne metódy s implementáciou. Môže mať stav (polia). Triedy dedičia od abstraktnej triedy a môžu prepísať metódy.

  • Rozhranie opisuje iba sadu metód bez implementácie a neobsahuje stav. Trieda, ktorá rozhranie implementuje, musí implementovať všetky jeho metódy.

Príklad rozdielov:

  • Abstraktná trieda je vhodná, keď je potrebné definovať základnú implementáciu a spoločný stav pre dedičov.
  • Rozhranie sa používa na opis schopností, ktoré môžu byť implementované rôznymi triedami bez vzťahu dedičstva.

Napríklad, rozhranie Flyable môže opisovať metódu fly(), a abstraktná trieda Bird môže obsahovať pole wingSpan a metódu sing() s implementáciou.