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

Polimorfismo - Duvida

Isso está de dentro da classe Funcionario

public abstract double getBonus();

public abstract double getTotal();

Na classe TestaFuncionario 

 Funcionario cc = new Gerente();

cc.setSalario(1000);


System.out.println(cc.getBonus());

Se ele se baseia pela variavel, porque nesse caso ele chama o getBonus emplementado na classe gerente ? Pela logica, devia retornar 0 , ou dar algum erro , já que o getBonus da classe Funcionario é abstrato e não retorna valor algum.

1 resposta
solução!

Marcos, Bom dia !!

Seguinte , quando o método é abstrato , ele não pode ser implementado na classe pai , e a classe filha vai ser obrigada a herdar esse método e implementa-lo .

ao chamar o método da classe filha , ele seguirá as regras que foram implementada lá . por exemplo se na classe filha o método getBonus estiver deste jeito :

public int getBonus(){

return 10;
}

sempre que chamar o método irá retornar 10 , mesmo sendo diferente da classe pai ou de outras classes filhas que tiver implementado esse método .

Espero ter te ajudado, Bons Estudos