/*
Criei esse método abaixo para printar os dados na classe conta e ficar um pouco mais limpo no arquivo index.js;
Porém se crio ele sem retorno fica dando undefined no final de cada print como abaixo:
Método sem retorno:
printDados() {
console.log(`Agência: ${this.agencia} \nSaldo inicial: ${this.saldoInicial} \nCliente: ${this.cliente}`);
}
Resultado:
Conta Corrente
Agência: 1234
Saldo inicial: 1000
Cliente: Marco
CPF: 123456777
undefined
Conta Poupança
Agência: 1234
Saldo inicial: 40
Cliente: Marco
CPF: 123456777
undefined
*/
//Método com retorno
printDados() {
return `Agência: ${this.agencia} \nSaldo inicial: ${this.saldoInicial} \nCliente: ${this.cliente}`;
}
Resultado:
/*
Conta Corrente
Agência: 1234
Saldo inicial: 1000
Cliente: Marco
CPF: 123456777
Conta Poupança
Agência: 1234
Saldo inicial: 40
Cliente: Marco
CPF: 123456777
*/
Quando o método está sem retorno (somente com console.log();), adiciono e sobrescrevo nas classes filhas sem problemas e printa com undefined, porém se eu crio o método com retorno na classe mãe tenho que retornar (return super.printDados();) na classe filha também. ficando assim
//Com retorno classe mãe
printDados() {
return `Agência: ${this.agencia} \nSaldo inicial: ${this.saldoInicial} \nCliente: ${this.cliente}`;
}
//Com retorno classes filhas
printDados() {
console.log("Conta Poupança");
return super.printDados();
}
printDados() {
console.log("Conta Corrente");
return super.printDados();
}
//Sem retorno classe mãe
printDados() {
console.log(`Agência: ${this.agencia} \nSaldo inicial: ${this.saldoInicial} \nCliente: ${this.cliente}`);
}
//Sem retorno classes filhas
printDados() {
console.log("Conta Poupança");
super.printDados();
}
printDados() {
console.log("Conta Corrente");
super.printDados();
}
//PS: LEMBRANDO QUE SEM RETORNO FICA RETORNANDO UNDEFINED NO FINAL COMO MOSTREI ACIMA