Estava estudando interface e me surgiu uma dúvida no código abaixo :
public class TesteGerente { public static void main(String[] args) {
Autenticavel referencia = new Cliente();
Gerente g1 = new Gerente();
g1.setNome("Marco");
g1.setCpf("235568413");
g1.setSalario(5000.0);
System.out.println(g1.getNome());
System.out.println(g1.getCpf());
System.out.println(g1.getSalario());
System.out.println(g1.getBonificacao());
A parte do new Cliente usando como referencia a interface que ele assina ( Autenticavel referencia = new Cliente() ) , qual seria a real vantagem de criar o objeto usando esse tipo de referencia, e se muda algo no desenvolvimento do código.