1
resposta

Java II, Interface, exercicio 3

Galera o exercicio tinha como objetivo demonstrar a utilização de uma interface como parametro para um método, funcionou mas o resultado esta cofuso...a seguir o código e resultado

public class GerenciadorImpostoRenda {
    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 TestaGerenciadorImpostoRenda {
    public static void main(String[] args) {

        GerenciadorImpostoRenda gc = new GerenciadorImpostoRenda();

        SeguroVida sv = new SeguroVida();
        gc.adiciona(sv);

        ContaCorrente cc = new ContaCorrente();
        cc.deposita(1000);
        gc.adiciona(cc);

        ContaCorrente c1 = new ContaCorrente();
        c1.deposita(3000);
        gc.adiciona(c1);

        System.out.println(gc.getTotal());
    }

}

O resultado foi o seguinte : 
Adicionando tributavel SeguroVida@15db9742
Adicionando tributavel ContaCorrente@6d06d69c
Adicionando tributavel ContaCorrente@7852e922
82.0

está correto exceto pelos @ em diante
1 resposta

Opa Antonio, acho que ainda não chegou nessa parte do curso, mas você vai que as classes podem sobreescrever um método chamado toString. Na hora que vc concatena o t ali, na verdade, por baixo do pano, o toString do objeto está sendo invocado... Como não está sobreescrito, está chamando o da classe mãe, que vc tb vai aprender...