Pelo que entendi, referências e heranças são as mesmas coisas, só que com nome diferente.
Quando tenho uma classe Funcionário e uma classe Gerente, posso usar uma referência. Ex.: Funcionario gerente = new Funcionario();
Porque trocar um pelo outro?