extends e sobrescrita de métodos
Compartilhe e especialize o comportamento da classe-pai.
extends e sobrescrita de métodos é 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.
Compartilhando comportamento
Quando duas classes compartilham a maior parte do comportamento, você pode escrevê-lo uma vez e reutilizá-lo. Dart chama isso de herança, evitando a cópia e a colagem. 🌱
A palavra-chave extends
Você herda escrevendo extends depois do nome de uma classe. A nova classe é uma classe filha que recebe automaticamente os campos e métodos da classe pai.
class Animal {}
class Dog extends Animal {}Classe pai e classe filha
A classe que você estende é a superclasse (classe pai). A nova classe é a subclasse (classe filha). Um Dog é um Animal, mas nem todo Animal é um Dog.
Membros herdados
Uma classe filha pode usar imediatamente os métodos públicos da classe pai como se fossem seus. Você escreve o comportamento herdado uma vez e todas as subclasses se beneficiam dele.
class Animal {
void breathe() => print('breathing');
}
class Dog extends Animal {}
// Dog().breathe() worksAdicionando um novo comportamento
Uma subclasse também pode adicionar seus próprios métodos ao que herdou. A classe filha continua sendo um Animal, mas ganha capacidades extras que a classe pai não tinha.
class Dog extends Animal {
void bark() => print('Woof!');
}Substituindo um método
Às vezes, a versão do pai não é adequada para a classe filha. A sobrescrita permite que uma subclasse substitua um método herdado pela própria implementação.
class Animal {
void speak() => print('...');
}
class Cat extends Animal {
void speak() => print('Meow');
}O marcador @override
Adicione a anotação @override acima de um método substituído. Ela informa ao analisador que deve confirmar se o pai realmente possui esse método, identificando erros de digitação logo no início.
class Cat extends Animal {
@override
void speak() => print('Meow');
}A mesma assinatura é obrigatória
Uma sobrescrita deve manter o mesmo nome e uma assinatura compatível. Se alterar os parâmetros ou o tipo de retorno de forma descuidada, Dart rejeitará o código.
Reutilizando a versão do pai
Dentro de uma sobrescrita, você ainda pode chamar o original por meio de super e, em seguida, adicionar suas próprias etapas ao redor dele. Assim, você amplia o comportamento em vez de descartá-lo.
@override
void speak() {
super.speak();
print('and purrs');
}Polimorfismo em ação
Armazene objetos filhos em uma variável do tipo Animal e chame speak: cada um executará sua própria versão. Isso é polimorfismo, o verdadeiro benefício da sobrescrita.
Animal a = Cat();
a.speak(); // MeowHerança única
Uma classe Dart pode estender exatamente uma superclasse, nunca duas. Para compartilhar código entre árvores não relacionadas, você poderá usar mixins mais adiante.
Verificação rápida
Você substitui um método herdado em uma subclasse. O que isso faz?
Recapitulação
Você usou extends para herdar os membros do pai, adicionou novos métodos e sobrescreveu outros com @override. Esse é o princípio central da reutilização de classes. 🎉
Perguntas Frequentes
A aula “extends e sobrescrita de métodos” é grátis?
Sim — o texto completo de “extends e sobrescrita de métodos” é 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 “extends e sobrescrita de métodos”?
Compartilhe e especialize o comportamento da classe-pai. 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 “extends e sobrescrita de métodos”?
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