Junior — Middle
Care sunt diferențele dintre o clasă abstractă și o interfață în programarea orientată pe obiect?
sobes.tech AI
Răspuns de la AI
O clasă abstractă și o interfață sunt mecanisme diferite pentru a descrie contracte și comportamente în programarea orientată pe obiect, dar cu diferențe cheie:
-
Clasa abstractă poate conține atât metode abstracte (fără implementare), cât și metode concrete cu implementare. Poate avea stare (câmpuri). Clasele moștenesc de la clasa abstractă și pot suprascrie metode.
-
Interfața descrie doar un set de metode fără implementare și nu conține stare. Clasa care implementează interfața trebuie să implementeze toate metodele sale.
Exemplu de diferențe:
- Clasa abstractă este potrivită atunci când trebuie să definești o implementare de bază și o stare comună pentru moștenitori.
- Interfața este folosită pentru a descrie capabilități care pot fi implementate de diferite clase fără legătură de moștenire.
De exemplu, interfața Flyable poate descrie metoda fly(), iar clasa abstractă Bird poate conține câmpul wingSpan și metoda sing() cu implementare.