Fiz o exercicio como proposto, mas nao entendi a saida:
Adicionando tributavel: SeguroDeVida@15db9742 //por que saiu desse jeito?
Adicionando tributavel: ContaCorrente@6d06d69c //aqui também
52.0
public abstract class Conta {
protected double saldo;
public double getSaldo() {
return this.saldo;
}
public void deposita(double valor) {
this.saldo += valor;
}
public void saca(double valor) {
this.saldo -= valor;
}
public abstract void atualiza(double taxa);
public void setSaldo(double saldo) {
this.saldo = saldo;
}
}
public 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;
}
}
public class SeguroDeVida implements Tributavel {
public double calculaTributos() {
return 42;
}
}
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;
}
}
public 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());
}
}