Ao extends de uma classe mãe, eu sempre tenho que usar no constructor todas as propriedades da classe mãe ? E em super eu adiciono somente o que vou usar na classe filha ?
Ao extends de uma classe mãe, eu sempre tenho que usar no constructor todas as propriedades da classe mãe ? E em super eu adiciono somente o que vou usar na classe filha ?
Olá, Isabela! Tudo bem?
Peço desculpa pela demora para responder o seu tópico.
Quando você estende uma classe mãe em uma classe filha, você tem acesso a todas as propriedades e métodos da classe mãe. No entanto, você não é obrigada a utilizar todas as propriedades no constructor da classe filha. Você pode escolher quais propriedades da classe mãe serão utilizadas na classe filha e adicionar somente essas no constructor.
Já no super, você deve passar todas as propriedades que serão utilizadas na classe filha que foram herdadas da classe mãe. O super é utilizado para chamar o constructor da classe mãe e passar os parâmetros necessários para que as propriedades sejam inicializadas corretamente.
Por exemplo:
class Mae {
constructor(propriedade1, propriedade2) {
this.propriedade1 = propriedade1;
this.propriedade2 = propriedade2;
}
}
class Filha extends Mae {
constructor(propriedade1) {
super(propriedade1, 'valor2');
this.propriedade3 = 'valor3';
}
}
const objeto = new Filha('valor1');
console.log(objeto.propriedade1); // valor1
console.log(objeto.propriedade2); // valor2
console.log(objeto.propriedade3); // valor3
Nesse exemplo, a classe Filha estende a classe Mae e utiliza somente a propriedade1
da classe mãe. No super, é passado o valor de propriedade1
e um valor fixo para propriedade2
. Na classe Filha, é adicionada a propriedade3
.
Espero ter conseguido esclarecer a sua dúvida. Caso tenha mais dúvidas, com relação a este tópico, estarei à disposição para ajudá-la.
Grande abraço e bons estudos!