El modificador abstract
se usa para definir elementos incompletos que deben ser implementados o extendidos por otras clases.
Puede aplicarse a:
-
Clases abstractas: Son clases que no pueden ser instanciadas directamente, ya que están diseñadas para ser superclases de otras clases. Sí pueden tener constructores, que se ejecutan cuando se crea una instancia de una subclase. Pueden contener métodos abstractos (sin implementación) y también métodos concretos. Para que una subclase deje de ser abstracta, debe proporcionar implementaciones para todos los métodos abstractos heredados.
public abstract class Animal {}
-
Métodos: no tienen cuerpo; deben implementarse en subclases
abstract void hablar();
Usos típicos
-
Crear plantillas para jerarquías de herencia
-
Forzar implementación en subclases concretas
-
Diseñar API genéricas o parciales