Chamando super e encadeando construtores
Acesse a classe-pai durante a construção.
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. 🔗
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
- extends e sobrescrita de métodos
- Chamando super e encadeando construtores
- Mixins com a palavra-chave with
- Restrições on e ordem dos mixins