Dart Academy · Aula

Chamando super e encadeando construtores

Acesse a classe-pai durante a construção.

Aula 2 de 413 etapas

Chamando super e encadeando construtores é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 2 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.

Ordem de construção

Ao construir uma subclasse, o pai precisa ser configurado primeiro. Dart garante que o construtor do pai seja executado antes do início do corpo do filho. 🏗️

Conheça super

A palavra-chave super se refere à parte do pai no seu objeto. Você a usa para acessar o construtor, os métodos e os campos do pai de dentro do filho.

O super() implícito

Se você não escrever nada, Dart chama secretamente o construtor do pai sem argumentos. Esse super() invisível explica por que os pais sempre são inicializados primeiro.

class Animal { Animal() => print('Animal'); }
class Dog extends Animal { Dog(); }

Chamando super explicitamente

Quando o pai precisa de argumentos, você chama super(...) na lista de inicialização do construtor, depois de dois-pontos. Isso encaminha os valores pela cadeia.

class Dog extends Animal {
  Dog(String name) : super(name);
}

Onde super fica

A chamada a super fica na lista de inicialização, nunca no corpo do construtor. Quando o corpo é executado, o pai já está totalmente construído.

Dog(String name, this.breed) : super(name);

Parâmetros de super

O Dart moderno permite encaminhar argumentos diretamente ao pai usando super.field. Isso elimina código repetitivo na lista de parâmetros.

class Dog extends Animal {
  Dog(super.name);
}

Chamando métodos de super

Dentro de um método sobrescrito, super.method() executa a versão original do pai. Assim, você amplia o comportamento em vez de substituí-lo completamente.

@override
void speak() {
  super.speak();
  print('extra');
}

Subindo pela árvore

Com vários níveis de herança, cada construtor chama seu próprio pai. Essa cadeia chega ao topo e, depois, executa os corpos de volta até a sua classe.

Ordem de inicialização

A ordem completa é: primeiro a lista de inicialização e super, depois o corpo do pai e, por fim, o corpo do filho. Os campos estão prontos para serem final antes da execução de qualquer corpo.

Quando o pai precisa de argumentos

Se o pai não tiver um construtor padrão, você deverá chamar super com os argumentos corretos. Se ignorar isso, Dart informará um erro de compilação.

Redirecionando com this

Dentro de uma classe, um construtor pode chamar outro usando this(...). Isso é um encadeamento entre irmãos, diferente de subir na hierarquia com super.

Point.origin() : this(0, 0);

Verificação rápida

Pense em onde a chamada ao construtor do pai deve aparecer.

Recapitulação

Você chamou super para executar construtores e métodos do pai, encaminhou valores com parâmetros de super e redirecionou construtores irmãos com this. 🔗

Grátis para começar

Aprenda Dart com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Chamando super e encadeando construtores” é grátis?

Sim — o texto completo de “Chamando super e encadeando construtores” é 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 “Chamando super e encadeando construtores”?

Acesse a classe-pai durante a construção. 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 2 de 4.

Quanto tempo leva a aula “Chamando super e encadeando construtores”?

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. extends e sobrescrita de métodos
  2. Chamando super e encadeando construtores
  3. Mixins com a palavra-chave with
  4. Restrições on e ordem dos mixins
← Voltar para Dart Academy