Estive testando o código usando java 10 e percebi que poderia colocar o var em vez de Funcionario e ele continuaria funcionando perfeitamente inclusive funcionando o método autentica sem precisar fazer "((Gerente) g1)" qual são as vantagens e desvantagens do uso de var para polimorfia?
public class TesteReferencia {
public static void main(String[] args) {
var g1 = new Gerente();
g1.setNome("Marcos");
g1.setSalario(5000);
g1.autentica(2222);
Funcionario f = new Funcionario();
f.setSalario(2000);
EditorVideo ev = new EditorVideo();
f.setSalario(2500);
ControleBonificao controle = new ControleBonificao();
controle.registra(g1);
controle.registra(f);
controle.registra(ev);
System.out.println(controle.getSoma());
}
}