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.