Bom dia!
Acredito que minha classe esteja certa, mas a saída está assim e eu não to entendendo o motivo... poderiam me auxiliar?
Classe GerenciadorDeImpostoDeRenda:
public class GerenciadorDeImpostoDeRenda {
private double total;
void adiciona(Tributavel t) {
System.out.println("Adicionando tributavel" + t);
this.total += t.calculaTributos();
}
public double getTotal() {
return this.total;
}
}
Classe TestaGerenciadorDeImpostoDeRenda:
class TestaGerenciadorDeImpostoDeRenda {
public static void main(String[] args) {
GerenciadorDeImpostoDeRenda gerenciador = new GerenciadorDeImpostoDeRenda();
SeguroDeVida sv = new SeguroDeVida();
gerenciador.adiciona(sv);
ContaCorrente cc = new ContaCorrente();
cc.deposita(1000);
gerenciador.adiciona(cc);
System.out.println(gerenciador.getTotal());
}
}
Classe ContaCorrente:
class ContaCorrente extends Conta implements Tributavel {
public void atualiza(double taxa) {
this.saldo += this.saldo * taxa * 2;
}
public double calculaTributos() {
return this.getSaldo() * 0.01;
}
}
Classe SeguroDeVida:
public class SeguroDeVida implements Tributavel {
public double calculaTributos() {
return 42;
}
}
Saída da compilação:
Adicionando tributavelconta.SeguroDeVida@2a139a55
Adicionando tributavelconta.ContaCorrente@15db9742
52.0