O que é o método super() e quando usá-lo?
O método super()
é utilizado dentro de classes filhas para acessar métodos e propriedades da classe pai. Ele é uma parte essencial do conceito de herança em JavaScript. Quando você herda de uma classe em JavaScript usando a palavra-chave extends
, o super()
pode ser utilizado para chamar o construtor ou outros métodos da classe base.
Como funciona o método super()
?
O método super()
pode ser utilizado de duas maneiras principais:
- Chamar o construtor da classe pai
- Chamar métodos da classe pai
Quando você usa super()
em um construtor, ele chama o construtor da classe pai, permitindo que você inicialize as propriedades herdadas da classe base. Isso é particularmente útil quando você deseja que a classe filha tenha acesso a comportamentos definidos na classe pai.
Exemplo básico de uso do método super()
no construtor:
class Animal {
constructor(nome) {
this.nome = nome;
}
falar() {
console.log(`${this.nome} faz um som.`);
}
}
class Cachorro extends Animal {
constructor(nome, raca) {
super(nome); // Chama o construtor da classe pai
this.raca = raca;
}
latir() {
console.log(`${this.nome} está latindo!`);
}
}
const cachorro = new Cachorro('Rex', 'Pastor Alemão');
cachorro.falar();
cachorro.latir();
O que o código está fazendo: A classe Cachorro
herda de Animal
. Dentro do construtor da classe Cachorro
, chamamos super(nome)
, que invoca o construtor da classe Animal
para inicializar a propriedade nome
. A classe Cachorro
também define um novo método, latir()
, que é exclusivo para os objetos da classe filha.
O uso de super()
permite que o objeto criado com new Cachorro()
tenha tanto as propriedades definidas na classe base quanto as propriedades e métodos específicos da classe filha.
Usando o método super()
para chamar métodos da classe pai
Além de chamar o construtor da classe pai, o super()
também pode ser utilizado para acessar métodos da classe base. Isso permite que a classe filha modifique ou expanda o comportamento da classe pai, sem precisar reescrever os métodos existentes.
Exemplo de uso de super()
para chamar métodos da classe pai:
class Animal {
falar() {
console.log('O animal faz um som.');
}
}
class Cachorro extends Animal {
falar() {
super.falar(); // Chama o método falar() da classe pai
console.log('O cachorro late.');
}
}
const cachorro = new Cachorro();
cachorro.falar(); // 'O animal faz um som.'
// 'O cachorro late.'
O que o código está fazendo: Dentro do método falar()
da classe Cachorro
, usamos super.falar()
para chamar o método falar()
da classe Animal
antes de adicionar um comportamento adicional (o latido do cachorro). Isso demonstra como o super()
pode ser usado para invocar comportamentos da classe pai, enquanto permite que a classe filha adicione suas próprias funcionalidades.
Quando usar o método super()
?
O super()
deve ser usado sempre que você quiser acessar ou modificar o comportamento de métodos e propriedades da classe pai. Ele é crucial para garantir que o código de herança funcione corretamente e para promover o reuso de código. O super()
é essencial em situações como:
- Inicializar propriedades herdadas da classe base em classes filhas.
- Acessar ou modificar métodos da classe pai dentro da classe filha.
Conclusão
O método super()
é uma ferramenta poderosa na programação orientada a objetos em JavaScript, especialmente quando se trabalha com herança. Ele permite que você interaja diretamente com a classe pai, tornando o código mais modular e reutilizável. Ao entender como usar super()
adequadamente, você pode escrever código mais eficiente e bem estruturado, promovendo o reuso de funcionalidades e melhorando a manutenção do código.
A importância do método super() na herança e no reuso de código em JavaScript
O uso do método super()
é essencial para garantir que a herança em JavaScript funcione corretamente. Ele permite que classes filhas acessem propriedades e métodos da classe pai de forma eficiente, promovendo o reuso de código e tornando as classes mais modulares e reutilizáveis.
Algumas aplicações:
- Inicialização de propriedades herdadas com
super()
em construtores de classes filhas. - Expansão de métodos da classe pai usando
super()
para manter a funcionalidade da classe base e adicionar novos comportamentos. - Reuso de código comum entre várias classes filhas, facilitando a manutenção e evolução do sistema.
Dicas para quem está começando
- Pratique criando classes base e derivadas, usando
super()
para acessar e modificar propriedades da classe pai. - Comece usando
super()
para chamar o construtor da classe pai, depois experimente chamar métodos comsuper()
para entender como ele funciona. - Evite duplicação de código em classes filhas, utilizando
super()
sempre que necessário para reusar código da classe pai.

Andressa Maria
Desenvolvedora sênior com forte atuação em PHP, JavaScript e tecnologias de backend.
Mais sobre o autor