Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Entendendo o resultado devido ao erro do professor

É uma dúvida simples, apenas para confirmar o entendimento. Envolve mais a questão de construtores do que polimorfismo.

O cálculo feito pelo programa do professor (com o erro de referencia f ao inves de ev) foi 5475.

ControleBonificacao controle = new ControleBonificacao();
            controle.registra(g1); // aqui somou 5250. tudo certo
            controle.registra(f); // aqui somou 125 que é 5% de 2500, pois foi setado f.salario novamente, agora em 2500 ao inves de manter 2000 e setar 2500 pro ev.salario
            controle.registra(ev); // aqui somou apenas o +100 que é o bonus fixo, pois a variavel salario do ev estava setada em 0 pelo construtor e ele fez o cálculo da bonificacao de funcionario 0,05*0(salario zerado setado pelo construtor)=0.

Por isso o resultado foi 5250+125+100=5475.

O programa fez o calculo porque o construtor iniciou a variável ev.salario, mas iniciou com 0.

1 resposta
solução!

Perfeito, Humberto. É isso mesmo!!

No final, acabamos somando 100 com nada já que, como você disse, o salário do EV estava zerado por nunca ter sido "setado". Aliás, muito bom os comentários, mostra que você pegou bem o fluxo do programa!

Continue assim. E se tiver alguma dúvida é só avisar! ;)

Forte abraço e bons estudos!!