Polimorfismo de Sobrescrita de Método em JavaScript
O polimorfismo é um dos conceitos mais poderosos da programação orientada a objetos, permitindo que objetos de diferentes classes sejam tratados de maneira uniforme. Uma das formas de implementar o polimorfismo é através da sobrescrita de método, uma técnica que permite que uma classe filha forneça uma implementação específica de um método que já está definido em sua classe pai. Em JavaScript, uma linguagem conhecida por sua flexibilidade e dinamicidade, a sobrescrita de método é uma técnica crucial para criar hierarquias de classes flexíveis e extensíveis.
Entendendo a Sobrescrita de Método
Em JavaScript, a sobrescrita de método permite que uma classe filha forneça sua própria implementação de um método que já está definido em sua classe pai. Quando um método é chamado em um objeto da classe filha, o interpretador JavaScript primeiro procura por uma implementação desse método na própria classe filha. Se não encontrar, ele vai procurar na classe pai e em suas superclasses até encontrar uma implementação adequada. Isso permite que as classes filhas substituam ou aprimorem o comportamento de métodos herdados da classe pai, tornando o código mais flexível e adaptável.
Benefícios da Sobrescrita de Método
- Flexibilidade: Permite que classes filhas substituam ou aprimorem o comportamento de métodos herdados da classe pai.
- Extensibilidade: Facilita a adição de novos comportamentos às subclasses sem modificar a classe pai.
- Manutenibilidade: Simplifica a manutenção do código, pois as alterações no comportamento de um método podem ser feitas apenas na classe filha relevante.
Exemplo Prático de Sobrescrita de Método em JavaScript
script.js
class Produto{
constructor(nome, preco){
this.nome = nome;
this.preco = preco;
}
calcularDesconto(){
throw new Error("Método calculadDesconto() deve ser obrigatório");
}
}
class ProdutoEletronico extends Produto{
constructor(nome, preco, garantiaMeses){
super(nome, preco);
this.garantiaMeses = garantiaMeses;
}
calcularDesconto(){
return this.preco * 0.1;
}
}
class ProdutoAlimenticio extends Produto{
constructor(nome, preco, validadeDias){
super(nome, preco)
this.validadeDias = validadeDias;
} calcularDesconto(){
return this.preco * 0.5;
}
}
function aplicarDesconto(produto){
const desconto = produto.calcularDesconto()
const precoComDesconto = produto.preco - desconto;
console.log(`Preço com desconto para ${produto.nome}: $${precoComDesconto.toFixed(2)}`);
}
const tablet = new ProdutoEletronico("tablet", 1000, 10);
const maca = new ProdutoAlimenticio("maca", 2, 3);
aplicarDesconto(tablet);
aplicarDesconto(maca);
Conclusão
O polimorfismo de sobrescrita de método é uma técnica poderosa em JavaScript, permitindo criar hierarquias de classes flexíveis e adaptáveis. Ao entender e aplicar corretamente a sobrescrita de método em seus projetos JavaScript, você pode escrever código mais modular, reutilizável e fácil de manter.
One Comment
DAVI DA SILVA OLIVEIRA
Muito obrigado. Gratidão