Sobes.tech
Junior

¿Qué es una clase abstracta?

sobes.tech AI

Respuesta de la IA

Una clase abstracta es una clase que no se puede crear directamente usando el operador new. Sirve como base para otras clases y puede contener métodos abstractos (sin implementación) y métodos normales (con implementación). Las clases abstractas se definen con la palabra clave abstract.

Características principales:

  • No se puede instanciar: No es posible crear un objeto de la propia clase abstracta.
  • Puede contener métodos abstractos: Métodos sin cuerpo, que deben ser sobrescritos en las clases hijas.
  • Puede contener métodos normales: Métodos con implementación, que pueden ser heredados o sobrescritos.
  • Herencia: Las clases hijas heredan de la clase abstracta y deben implementar todos sus métodos abstractos.

Ejemplo:

abstract class Shape {
  // Método abstracto sin implementación
  double getArea();

  // Método normal con implementación
  void describe() {
    print('Esto es una figura.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Implementación del método abstracto
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Implementación del método abstracto
  @override
  double getArea() {
    return side * side;
  }
}