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.