Para testar a função de registrar funcionário o professor instanciou o seguinte objeto:
Gerente g1 = new Gerente();
Para o método registra:
public void registra(Funcionario f) {
double boni = f.getBonificacao();
this.soma = this.soma + boni;
}
Ao executar essa função, mesmo com o parâmetro sendo do tipo Funcionario, ou seja, do tipo genérico, mesmo assim funcionou. Então, se mesmo sem que a referência do objeto seja genérica, o java entendeu e chamou o método especifico, em que situação, criar um objeto com referência genérica seria útil? Ex:
Funcionario g1 = new Gerente();