Olá, assistindo as aulas não percebi a vantagem/sentido de se utilizar, por exemplo:
Funcionario gerente = new Gerente( );
no lugar de
Gerente gerente = new Gerente( );
Instanciando diretamente de gerente que é "filho" de funcionário, já recebo todos os métodos/atributos do funcionário. Então, para mim não existe diferença. Se existe, não consegui enxergar ainda!