Olá pessoal. Terminei de ver a aula acerca do conceito de privado e protegido e para exemplificar o professor criou um método privado sacar, cujo objetivo é resolver uma especificidade de saque da classe ContaCorrente em relação a classe Conta. O método sacar da classe conta não possui taxas, mas a regra do negócio é que a classe ContaCorrente que estende a classe Conta tenha uma taxa de 10%. Mas eu resolvi de um jeito diferente, tive a ideia quando ele explicou o que o super faz. Então, ao invés de eu criar um novo método na super classe eu fiz o seguinte:
sacar(valor){
let taxa = 1.1;
return super.sacar(valor*taxa);
}
// Na super classe
sacar(valor){
if (this._saldo >= valor){
this._saldo -= valor;
return valor;
}
return 0;
}
A solução do professor:
sacar(valor){
let taxa = 1;
return super._sacar(valor, taxa);
}
_sacar(valor, taxa){
const valorSacado = taxa * valor;
if (this._saldo >= valorSacado){
this._saldo -= valorSacado;
return valorSacado;
}
return 0;
}
Então eis a questão: Tem problema eu deixar do jeito que eu fiz? Existe algum erro conceitual de boas práticas, algo assim? Realmente em dúvida aqui...