1
resposta

Problema: Polimorfismo

Olá, tudo bem?

Seguindo nosso exemplo de polimorfismos no projeto empresa temos os seguintes objetos:

Funcionario Gerente extends Funcionario Diretor extends Gerente Outsourcing extends Funcionario

Legal ate ai tudo certo, entendi bem o conceito. Ficou um pouco nebuloso quando invocamos o getBonificacao().

        ControleBonificacao controle = new ControleBonificacao();
        controle.registra(funcionario);
        controle.registra(gerente);
        controle.registra(diretor);
        controle.registra(terceiro);

O programa compilou corretamente e fez todos os calculos. Porem, os objetos Diretor e Outsourcing não tem direito a bonificação, pelo memos no meu exemplo, logo estes não possuem o metodo getBonificacao();. E mesmo assim o codigo compilou e calculou a bonificação para Diretor e Outsourcing, com base na herança.

Outsourcing > calculou bonificação igual a Funcionario Diretor > calculou bonificação igual a Gerente

Visto que estas classes não possuem o metodo getBonificacao(); o codigo não deveria dar erro, avisar com warning ou não calcular a bonificação?

Para contornar esta situação implementei o seguinte metodo para Diretor e Outsourcing.

    public double getBonificacao() {
        return 0.0;

    }

Desde já grato.

Abs.

1 resposta

Olá Jonathas, achei interessante o seu exemplo onde o Diretor e Outsourcing não tem direito a bonificação.

Respondendo a sua pergunta, existe sim uma forma de gerar um erro se chama Java Exceptions. Vale muito apena implementar nesse código com o exemplo que você fez acima.

Espero ter ajudado, forte abraço!