Olá Luiz!
O que ele quis dizer é que neste caso ele criou uma variável do tipo Funcionario
. Dentro dessa variável foi colocado um objeto do tipo Diretor
e isso é possível devido ao polimorfismo, que permite que uma variável pode armazenar um objeto do seu próprio tipo ou do tipo de alguma das suas classes filhas.
Isso quer dizer que se tivermos as classes Diretor
, Designer
e Desenvolvedor
e todas essas classes são filhas de Funcionario
. Se eu criar a variável funcionario
que é do tipo Funcionario
. Poderia criar um objeto de qualquer uma das classes filhas:
Funcionario funcionario = new Desinger();
Funcionario funcionario = new Desenvolvedor();
Funcionario funcionario = new Diretor();
Esses são todos códigos válidos. Com o código Funcionario funcionario = new Desinger();
quer dizer que a variável funcionario
que é do tipo Funcionario
, mas também pode receber um objeto de qualquer classe derivada de Funcionario
, neste caso, Designer
.
No decorrer dos cursos será falado sobre isso, mas o que realmente quer dizer é que uma variável pode armazenar um objeto do seu próprio tipo ou do tipo de alguma das suas classes derivadas.
Espero ter ajudado, mas qualquer dúvida, estamos a disposição!
Bons estudos!