Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Herança Class

class Pessoa {
    constructor(a, b){
        this.a = a;
        this.b = b
    }
}
class Homem extends Pessoa {
    constructor(a){
        super(a);
    }

}
let homem = new Homen();
homen //{a: undefined, b:undefined}

Olá pessoal,

bom tenho uma dúvida em relação as heranças em javascript : no código do exemplo quando eu evoco a variável 'homem' APESAR de apenas dizer no constructor que que quero apenas 'a' ele instancia 'b' junto.

É possível impedir a herança de alguns atributos?

1 resposta
solução!

Olá meu aluno. Herança é tudo ou nada, não há como ser seletivo em herança, por exemplo, trazendo apenas o atributo X ou Y.

Aliás, só para deixá-lo ainda melhor do que já é. No caso, no seu código, ele não faz muito sentido. Se você herdou de Pessoa e ela possui um construtor, a classe filha é obrigada a chamar o construtor da classe mãe passando os dados de que precisa.

Você não recebeu nenhum erro de compilação, porque o JavaScript não possui tipagem estática e não verifica isso para você. Mas se você tivesse feito isso em linguagens como Java ou C# seu código nem compilaria.

Há outras formas de se reaproveitar código, herança é uma delas. Há também a composição. Se não me engano, no curso eu mostro composição através de exercícios.