A palavra-chave extends
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 26 de 56.
A palavra-chave extends em JavaScript é usada para criar uma classe filha que herda propriedades e métodos de uma classe pai.
Vamos primeiro criar uma classe pai:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
return `${this.name} makes a noise.`;
}
}Agora, vamos criar uma classe filha que estende a classe pai:
class Dog extends Animal {
// A classe Dog herda de Animal
}Este código simples significa que a classe Dog agora herda todas as propriedades e métodos da classe Animal.
Crie uma instância de cachorro:
const dog = new Dog('Rex');Chame um método herdado do pai:
console.log(dog.speak()); // Saída: "Rex makes a noise."A palavra-chave extends cria uma relação de herança onde a classe filha (Dog) pode acessar e usar toda a funcionalidade definida na classe pai (Animal).
Desafio
Crie uma classe Student que estenda a classe Person usando a palavra-chave extends e exporte-a.
Folha de consulta
A palavra-chave extends cria uma classe filha que herda propriedades e métodos de uma classe pai:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
return `${this.name} makes a noise.`;
}
}
class Dog extends Animal {
// Dog herda de Animal
}
const dog = new Dog('Rex');
console.log(dog.speak()); // Saída: "Rex makes a noise."A classe filha pode acessar todas as propriedades e métodos da classe pai.
Experimente você mesmo
import { Student } from './classes.js';
// Código de teste - não modifique
const student = new Student("Emma");
console.log(student.greet()); // Deve exibir "Hello, I'm Emma"Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição