Sobes.tech
Junior

O que é uma classe abstrata?

sobes.tech IA

Resposta da IA

Uma classe abstrata é uma classe que não pode ser criada diretamente usando o operador new. Ela serve como base para outras classes e pode conter métodos abstratos (sem implementação) e métodos normais (com implementação). As classes abstratas são definidas com a palavra-chave abstract.

Principais características:

  • Não pode ser instanciada: Não é possível criar um objeto da própria classe abstrata.
  • Pode conter métodos abstratos: Métodos sem corpo, que devem ser sobrescritos nas classes derivadas.
  • Pode conter métodos normais: Métodos com implementação, que podem ser herdados ou sobrescritos.
  • Herança: As classes derivadas herdam da classe abstrata e devem implementar todos os seus métodos abstratos.

Exemplo:

abstract class Shape {
  // Método abstrato sem implementação
  double getArea();

  // Método normal com implementação
  void describe() {
    print('Isto é uma figura.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Implementação do método abstrato
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Implementação do método abstrato
  @override
  double getArea() {
    return side * side;
  }
}