Sobes.tech
Junior

¿En qué consiste la diferencia entre clases abstractas e interfaces?

sobes.tech AI

Respuesta de la IA

Clase abstracta:

  • Puede contener métodos abstractos (sin implementación) y métodos concretos (con implementación).
  • Puede contener campos (variables de instancia).
  • Puede tener constructores.
  • Permite la herencia simple (una clase puede heredar de una clase abstracta).
  • Se utiliza para definir la estructura base y el comportamiento general de clases relacionadas.

Interfaz:

  • Solo puede contener métodos abstractos (algunos lenguajes, como Java desde la versión 8, permiten métodos default y static con implementación).
  • No puede contener campos de instancia (solo constantes).
  • No puede tener constructores.
  • Permite la implementación múltiple (una clase puede implementar varias interfaces).
  • Se usa para definir un contrato que las clases deben cumplir.