0Pricing
Dart Academy · Aula

Classes e métodos abstratos

Defina o que as subclasses devem implementar.

Classes e métodos abstratos é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.

O que significa abstrato

Uma classe abstrata é um modelo que você pode descrever, mas nunca criar diretamente. Ela existe para ser estendida, não para ser instanciada sozinha.

Marcando uma classe como abstrata

Você adiciona a palavra-chave abstract antes de class. Isso informa a Dart que a classe está incompleta e deve servir como base compartilhada.

abstract class Shape {
  double area();
}

Métodos abstratos não têm corpo

Um método abstrato declara um nome e uma assinatura, mas termina com ponto e vírgula, deixando o trabalho efetivo para cada subclasse.

abstract class Shape {
  double area(); // no body
}

Você não pode instanciá-la

Tentar escrever Shape() causa um erro de compilação. Dart recusa porque uma classe abstrata está inacabada e não possui uma implementação real.

var s = Shape(); // error: abstract

Subclasses preenchem as lacunas

Uma subclasse usa extends e deve fornecer um corpo para cada método abstrato, transformando o modelo em algo utilizável.

class Circle extends Shape {
  final double r;
  Circle(this.r);
  double area() => 3.14 * r * r;
}

Métodos concretos também são permitidos

Uma classe abstrata pode incluir métodos concretos totalmente implementados. As subclasses os herdam diretamente e só precisam preencher os abstratos.

abstract class Shape {
  double area();
  void describe() => print('Area is ' + area().toString());
}

Campos em classes abstratas

Classes abstratas também podem conter campos e construtores. Eles são executados quando uma subclasse é criada, mantendo o estado compartilhado na base.

abstract class Shape {
  final String name;
  Shape(this.name);
}

O compilador impõe o contrato

Se uma subclasse esquecer um método abstrato, Dart informará um erro antes mesmo de você executar o código. O contrato é verificado automaticamente.

class Square extends Shape {} // error: area() missing

Por que usar classes abstratas

Elas permitem que vários tipos compartilhem uma mesma estrutura, garantindo que cada um forneça seu próprio comportamento. Você define um contrato claro uma vez e o reutiliza em todos os lugares.

Getters abstratos

Métodos não são as únicas coisas que podem ser deixadas abstratas. Um getter sem corpo funciona da mesma forma e deve ser definido pelas subclasses.

abstract class Shape {
  String get label;
}

Mantendo referências abstratas

Você pode armazenar qualquer subclasse em uma variável cujo tipo seja a classe abstrata. O tipo promete um comportamento sem indicar uma classe concreta.

Shape s = Circle(2);
print(s.area());

Verificação rápida

Uma pergunta rápida sobre classes abstratas.

Recapitulação

Classes abstratas são modelos que você estende, não instancia. Métodos abstratos não têm corpo, e subclasses concretas devem implementá-los. Muito bem! 🎯

Perguntas Frequentes

A aula “Classes e métodos abstratos” é grátis?

Sim — o texto completo de “Classes e métodos abstratos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.

O que vou aprender em “Classes e métodos abstratos”?

Defina o que as subclasses devem implementar. Você pratica Dart Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Dart Academy?

Nenhuma experiência prévia é necessária. Dart Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Classes e métodos abstratos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Dart Academy?

Sim. Cada aula de Dart Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Classes e métodos abstratos
  2. Interfaces implícitas e implements
  3. Polimorfismo por meio de tipos compartilhados
  4. Composição em vez de herança
← Voltar para Dart Academy