Junior
Care este diferența dintre clasele abstracte și interfețe?
sobes.tech AI
Răspuns de la AI
Clasă abstractă:
- Poate conține metode abstracte (fără implementare) și metode concrete (cu implementare).
- Poate conține câmpuri (variabile de instanță).
- Poate avea constructori.
- Permite moștenirea simplă (o clasă poate moșteni de la o clasă abstractă).
- Este utilizată pentru a defini structura de bază și comportamentul general pentru clasele înrudite.
Interfață:
- Poate conține doar metode abstracte (unele limbaje, precum Java începând cu versiunea 8, permit metode default și static cu implementare).
- Nu poate conține câmpuri de instanță (doar constante).
- Nu poate avea constructori.
- Permite implementarea multiplă (o clasă poate implementa mai multe interfețe).
- Este folosită pentru a defini un contract pe care clasele trebuie să îl respecte.