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

Está em Java parte 3........

public class TesteTributaveis {

    public static void main(String[] args) {

        ContaCorrente cc = new ContaCorrente(222, 333);
        cc.deposita(100.0);

        SeguroDeVida seguro = new SeguroDeVida();
        seguro.deposita // Por que não posso depositar nenhum valor na instancia SeguroDeVida
                        // mas posso depositar na instância ContaCorrente?......


        CalculadorDeImposto calc = new CalculadorDeImposto();

        calc.registro(cc);
        calc.registro(seguro);

        System.out.println(calc.getTotalImposto());
    }

}

Boa Noite ou Bom dia!!! Como dito acima o curso está em java parte 3 vídeo numero 3 reparei que o Nico na classe main TesteTributaveis instanciou duas referências de objetos o ContaCorrente e o SeguroDeVida. No projeto ContaCorrente ele utilizou um método para depositar um valor na referência de objeto "cc" e deu certo. Já na outra instância, que é o objeto SeguroDeVida, eu reparei que ele não fez o mesmo e ao executar o código o método registro faz o cálculo do imposto sobre o valor que ele retorna(return) no código da classe SeuguroDeVida. Deixo o código abaixo:

public class SeguroDeVida implements Tributavel {

@Override public double getValorImposto() {

// TODO Auto-generated method stub

return 100; <--- ESTE É O VALOR!!!! }

}

Desde já obrigado....

2 respostas
solução!

Fala Thiago, tudo bem ?

Não é possível fazer depósitos em seguros de vida por a classe que os define não define esse método. Conta tem deposita(), Seguro de Vida não. Seguro tem um valor fixo do contrato e não é possível ir alterando esse valor com o tempo.

A implementação do método getValorImposto é diferente em cada uma dessas classes. A conta tem calculo com base no valor que ela possui no saldo, ja seguro de vida tem u valor fixo de 100. Nesse caso quem define esses detalhes é a regra de negócio da empresa. Perceba que os método mantém o padrão de assinatura exigido pela interface Tributavel (para podermos usar de forma genérica, polimórfica), mas cada uma das classes emprega uma regra diferente ao método.

Espero ter ajudado no pensamento. Abraço!

Obrigado....