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

Dificuldade com Interfaces

No meu código, o método adiciona() não aceita a variável seguro de vida "sv" como argumento. no exemplo acima diz que posso utiliza-la. qual seria o motivo deste erro?

public class TestaGerenciadorDeImpostoDeRenda {

    public static void main(String[] args) {

        GerenciadorDeImpostoDeRenda g = new GerenciadorDeImpostoDeRenda();

        SeguroDeVida sv = new SeguroDeVida();
        g.adiciona(sv); // <-- adiciona() não aceita sv como argumento.

        ContaCorrente cc = new ContaCorrente();
        cc.deposita(200);
        g.adiciona(cc);

        System.out.println(g.getTotal());


    }

}
5 respostas

Por favor, envie sua GerenciadorDeImpostoDeRenda completa.

Na classe GerenciadorDeImpostoDeRenda quando você criou o método adiciona você declarou como parametro a classe SeguroDeVida, por exemplo (''')

public void adiciona(SeguroDeVida seguroDeVida)(); (''')

Mais posta a classe GerenciadorDeImpostoDeRenda para tirarmos a duvida de forma mais clara.

no exercício pede para passar como parâmetro a variável "Tributavel t" e não seguroDeVida. Segue a classe completa:

public class GerenciadorDeImpostoDeRenda {
    private double total;

    void adiciona(Tributavel t){
        System.out.println("Adicionando tributável: " + t);

        this.total = total + t.calculaTributos();
    }

    public double getTotal(){
        return this.total;
    }

}
solução!

É isso que está acontecendo!

Seu método adiciona está esperando um objeto Tributavel e você está tentando passar outro objeto, no caso SeguroDeVida. Realmente não vai funcionar.

Passe Tributavel que dará certo!

Implementa Tributavel a class seguro de vida

Sei que já marcou como resolvido mais ta ae a resposta correta.

public class SeguroDeVida implements Tributavel {

    public double calculaTributavel() {
        return 42;
    }

}