Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida no Ex. 3 da Aula 4 - Interfaces

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
4 respostas

Oi Anderson,

Você precisa sobreescrever o método toString() da classe modelo, e escolher quais atributos deseja retornar.

solução!

Anderson, fui precipitado ao responder, parece que você esta tentando imprimir o objeto, tente escolher um atributo para imprimir em vez do objeto em si.

Exemplo:

System.out.println("Adicionando tributavel" + t.getNome());

Era isso mesmo Douglas, eu adicionei o método calculaTributos() e agora compilou!

Vlw cara, você tá representando!

um abraço!

A questão é que o enunciado do exercício está errado. Agora não sei se é de proposito, pois enfrentei o mesmo erro.