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.