Tive a mesma dúvida em relação ao amigo Victor que perguntou abaixo. Em relação a chamada do super passando o valor taxado para que a operação seja concluída na classe Conta e não na Conta Corrente:
Classe ContaCorrente:
sacar(valor) {
let taxa = 1.1;
const valorTaxado = taxa * valor;
super.sacar(valorTaxado);
}
Classe Conta:
sacar(valor) {
if (valor >= this._saldo) return;
this._saldo -= valor;
return valor;
}
Porém, fazendo a chamada desta maneira o funcionamento do sistema, para este caso, ficaria incorreto. Uma vez que o retorno do valor no método 'sacar' da classe CONTA é referente ao valor que será entregue ao usuário. Por isso, passando o valorTaxado, ele descontará da conta e retornará todo o valor descontado, e não somente o valor inicial.
Exempo: Saldo da Conta Corrente = R$ 200,00. Sacar na Conta corrente um valor de R$ 100,00. Eu chamo o método sacar da Conta Corrente e o valor é taxado em 10%. valor Taxado = R$ 110,00. É invocado o método do super (classe CONTA) passando o valor taxado como parâmetro. Sendo assim, o usuário (dono da conta) receberá um valor de R$ 110,00 e não $100,00. Sendo que os $10,00 deveriam ficar para o "Banco".
Estou certo?!