Sobes.tech
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.