// essas declaraçoes são a mesma coisa :
public class Diretor extends Funconario
// ou
Funcionario Diretor = new Diretor();
// essas declaraçoes são a mesma coisa :
public class Diretor extends Funconario
// ou
Funcionario Diretor = new Diretor();
Oi Ricardo, tudo bem?
Não são coisas iguais:
public class Diretor extends Funconario
cria uma herança informando que Diretor estende as características de Funcionário.
Funcionario Diretor = new Diretor();
Você está apenas criando uma variável do tipo Diretor e referenciando ela pelo tipo Funcionario (polimorfismo).