1
resposta

Não entendi exatamente como funciona o super()

O professor colocou o super() dentro dos construtores das classes ContaPoupanca e ContaCorrente mas eu não entendi exatamente porque ele fez isso, alguém me explica?

Exemplo:

import { Conta } from "./Conta.js";

export class ContaPoupanca extends Conta{
    constructor(saldoInicial, cliente, agencia) {
        super(saldoInicial, cliente, agencia);
    }

}
1 resposta

Olá, boa noite. O super() serve pra chamar o constructor() da classe pai. Ex:

class ClassePai {
       constructor(param) {
              this.propriedade = param;
       }

}

class ClasseFilha extends ClassePai {
       constructor(param) {
              super(param);
       }

       get propriedade() {
              return this.propriedade;
       }

       set propriedade(novoValor) {
              this.propriedade = novoValor;
       }
}

const novaInstancia = new ClasseFilha('texto');

novaInstancia.propriedade // 'texto'

No caso da classe acima ele está chamando o constructor de ClassePai passando param como parâmetro. Ele é tipo um new quando vamos instanciar uma classe, e ele sempre deve ser passado como primeira instrução. Me corrija se algo estiver errado, terminei o curso de Orientação a Objetos hoje. Espero ter ajudado! Se tiver mais dúvidas eu respondo caso eu saiba.