JavaScriptPOObasico

Override de método

Em projetos reais, você frequentemente define comportamentos padrão em uma classe base e personaliza em subclasses. Por exemplo, uma classe ComponenteUI pode ter um método renderizar() que retorna vazio, enquanto Botao e Input o sobrescrevem com lógicas específicas. Isso evita duplicação de código e torna o sistema extensível. Dominar override é essencial para aplicar polimorfismo de forma limpa.

O PROBLEMA

Crie classe Forma com area() retornando 0. Crie Retangulo e Circulo que sobrescrevem area(). Teste polimorfismo.

EXEMPLO

const r = new Retangulo(4,5);
r.area() → 20
const c = new Circulo(3);
c.area() → 28.27

SOBRE O CONCEITO

Override significa redefinir um método herdado em uma subclasse. Para isso, a subclasse declara um método com o mesmo nome e assinatura da classe pai. No construtor, super() é obrigatório para executar o construtor pai e inicializar propriedades herdadas — esquecer isso causa ReferenceError se o pai espera argumentos ou deixa atributos indefinidos. Erro ao sobrescrever: digitar o nome errado (ex.: area vs area()) ou não usar this para acessar propriedades da instância. No exercício, Forma define area() retornando 0; Retangulo e Circulo devem sobrescrever esse método usando this.largura, this.altura ou this.raio com Math.PI. O polimorfismo permite chamar area() em qualquer objeto Forma e obter o resultado correto.

RESOLUÇÃO

Mais exercícios de POO

JSP021 · AvançadoClasse LinkedListJSP005 · BásicoContador de instânciasJSP008 · Básicoinstanceof e verificação de tipoJSP009 · BásicoClasse abstrata simulada
Ver todos os exercícios de JavaScript