0Pricing
Dart Academy · Aula

Polimorfismo por meio de tipos compartilhados

Programe para um tipo, não para uma classe.

Polimorfismo por meio de tipos compartilhados é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 3 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 polimorfismo

Polimorfismo permite que um tipo represente muitos. Você chama um método em um tipo compartilhado, e cada objeto responde à sua própria maneira.

Programe para um tipo

Em vez de nomear uma classe concreta, você depende de um supertipo compartilhado. Seu código funciona com qualquer coisa que tenha esse formato.

void render(Shape s) => print(s.area());

Um tipo base compartilhado

Comece com um tipo base abstrato que declare o método comum que cada subtipo fornecerá de uma maneira diferente.

abstract class Shape {
  double area();
}

Muitos subtipos, um formato

Cada subtipo implementa area à sua própria maneira, mas todos continuam sendo tratados como um Shape.

class Circle extends Shape {
  double area() => 28.3;
}

Despacho dinâmico

Em tempo de execução, Dart escolhe o método do objeto real. Esse despacho faz com que a mesma chamada execute um código diferente para cada objeto.

Shape s = Circle();
s.area(); // runs Circle.area

Uma lista de formas diferentes

Como compartilham um tipo, você pode reunir objetos variados em uma única lista e tratá-los de maneira uniforme.

List<Shape> shapes = [Circle(), Square()];

Repetição polimórfica

Uma única repetição lida com todas as formas. Você nunca verifica a classe concreta; o método area correto simplesmente é executado.

for (var s in shapes) {
  print(s.area());
}

Aberto à extensão

Adicione um subtipo Shape completamente novo mais tarde, e as repetições existentes o utilizarão imediatamente. O polimorfismo mantém o código aberto ao crescimento.

class Triangle extends Shape {
  double area() => 12.0;
}

As interfaces funcionam da mesma forma

Tipos compartilhados também podem ser obtidos por meio da implementação. Qualquer classe que implemente a interface se conecta diretamente ao mesmo código.

void log(Printable p) => p.printOut();

Nenhuma verificação de tipo é necessária

Um bom código polimórfico raramente usa verificações explícitas de tipo. O tipo compartilhado já garante que o método exista, mantendo a lógica limpa.

Por que isso importa

O polimorfismo elimina longas sequências de if-else e seleções repetidas. Você escreve um código flexível, que se adapta a novos tipos sem alterações. 🌱

Verificação rápida

Uma pergunta rápida sobre polimorfismo.

Recapitulação

Polimorfismo significa programar para um tipo compartilhado enquanto cada objeto se comporta à sua própria maneira. Ele mantém o código flexível e aberto a novos subtipos. ✨

Perguntas Frequentes

A aula “Polimorfismo por meio de tipos compartilhados” é grátis?

Sim — o texto completo de “Polimorfismo por meio de tipos compartilhados” é 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 “Polimorfismo por meio de tipos compartilhados”?

Programe para um tipo, não para uma classe. 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 3 de 4.

Quanto tempo leva a aula “Polimorfismo por meio de tipos compartilhados”?

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