Na aula o professor criou o seguinte código na classe Conta:
sacar(valor) {
let taxa = 1;
return this._sacar(valor, taxa)
}
_sacar(valor, taxa) {
const valorSacado = taxa * valor;
if(this._saldo >= valorSacado {
this._saldo -= valorSacado;
return valorSacado;
}
return 0;
}
Ou seja, ele criou um método privado com o código que seria repetido em outras classes e mais um método adicionando a taxa. Após isso, na classe ContaCorrente ele sobrescreveu o método sacar(), alterando a taxa para 1,1.
Eu fiz um pouco diferente, não criei o segundo método na classe Conta e apenas o primeiro método privado, e aí na classe ContaCorrente criei apenas um método herdando o código da classe Conta e adicionando uma taxa. Não sei se ficou claro, mas gostaria de saber se isso é uma má prática e eu deveria necessariamente criar um método na classe Conta e sobrescreve-lo na classe ContaCorrente.
Abaixo segue meu código:
Classe Conta:
_transferir(valor, conta, taxa) {
if(this._saldo > valor) {
this._saldo = this._saldo - (valor * taxa);
conta.depositar(valor);
}
}
Classe ContaCorrente:
transferir(valor, conta) {
let taxa = 1.1;
this._transferir(valor, conta, taxa);
}
OBS: Adicionei taxa em transferências só pq pra mim faz mais sentido, rs.