Olá,
Se uma classe implementa uma interface ou estende outra classe, qual a vantagem se criar uma variável com tipo da interface ou superclasse já que implementando e estendendo já possuo acesso aos atributos e métodos?
Ex.:
public class Pessoa {}
public class Empregado extends Pessoa {}
public EmpregadoTeste {
private Pessoa empregado;
//Por que não criar assim
private Empregado empregado;
}
Uma utilização comum que vejo é nas Collections.
Grato.