Tentei modificar o construtor da classe contaPoupança pois obrigo em outra classe mãe (superClasse) Conta em vez de acionar o método deposita com a seguinte ação dentro dele:
this.saldo += valorDepositado - 0.10;
No construtor da conta poupança ficando assim:
public ContaPoupanca(double saldoInicial) {
super(saldoInicial);
/*Aqui chamei o método deposita dentro do construtor.
já tentei adidionar this.saldo += valorDepositado - 0.10; no construtor mas não rola
O calculo é feito de forma incorreta o resultado sai diferente se tivesse passado o saldo inicial de forma não obrigatório utilizando o método deposita
Se passo o saldo inicial pelo método deposita funciona perfeitamente, por favor galera me ajudem.
*/
deposita(saldoInicial);
// TODO Auto-generated constructor stub
}
Segue minha classe conta:
/**
*
* @author Renato
* @Date 25/07/2017
*
*/
public class Conta {
protected double saldo;
public Conta(double saldoInicial) {
this.saldo = saldoInicial;
}
public void atualiza(double taxa) {
this.saldo += this.saldo * taxa;
}
public double getSaldo() {
return this.saldo;
}
public void deposita(double valorDepositado) {
this.saldo += valorDepositado;
}
public void saca(double valorSacado) {
if (valorSacado <= this.saldo) {
this.saldo -= valorSacado;
} else {
System.out.println("Saldo Insuficiente para saque.");
}
}
void mostra() {
System.out.println("O saldo é de: " + getSaldo());
}
}
E minha main:
public class TesteAtualizadorDeContas {
public static void main(String[] args) {
Conta c = new Conta(1000);
Conta cc = new ContaCorrente(1000);
Conta cp = new ContaPoupanca(1000);
AtualizadorDeContas atualizador = new AtualizadorDeContas(0.01);
atualizador.roda(c);
atualizador.roda(cc);
atualizador.roda(cp);
System.out.println("O saldo total é = " + atualizador.getSaldoTotal());
}
}