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

Uso do extends(). Herdando métodos de outra classe.

Na aula, o professor cria a classe ClientePoupanca, e herda as propriedades da classe Cliente usando o seguinte código:

class Cliente {
    constructor(nome, email, cpf, saldo) {
        this.nome = nome;
        this.email = email;
        this.cpf = cpf;
        this.saldo = saldo;
    }
    depositar (valor) {
        this.saldo += valor;
    }
    mostrarSaldo () {
        console.log(this.saldo);
    }
}
class ClientePoupanca extends Cliente {
    constructor (nome, email, cpf, saldo, saldoPoupanca) {
        super(nome, email, cpf, saldo);
        this.saldoPoupanca = saldoPoupanca;
    }
    depositarPoupanca (valor) {
        this.saldoPoupanca += valor;
    }
}
#

E logo depois ele instancia um novo clientePoupanca, e utiliza um método da classe Cliente:


const andre = new ClientePoupanca (`André`, `andre@gmail.com`, `18218901671`, 100, 200);
andre.depositar(50);

A minha duvida é a seguinte: Quando usamos o extends, ele faz automaticamente a subClasse herdar todos métodos (funções) da classe pai? Não teria uma forma de especificar quais métodos queremos herdar?

1 resposta
solução!

O extends faz com que todos os métodos da classe pai sejam herdados pelo filho. Você pode sobrescrever os métodos herdados, mas não 'proibir' que seja herdado. Encontrei uma dúvida no Stack Overflow que fala disso: https://stackoverflow.com/questions/45151871/how-to-prevent-inheritance-of-specific-method