herança é um tipo de relação É UM
Tudo herda de Object. Logo vc pode fazer
Object o1 = new Pessoa();
Object o2 = new Funcionario();
Object o3 = new String();
Object o4 = new Object();
agora se não existe nenhuma relação entre Funcionario e Pessoa, vc náo pode fazer isso fera
Funcionario F = new Pessoa();
Pessoa P = new Funcionario();
Dá zika. não faz sentido isso.
Agora… se Funcionario Extends Pessoa, entáo Funcionario É UM Pessoa. Existe uma relação polimorfica ai.
isso funciona
Pessoa P = new Funcionario();
agora o contrario não. mas pq?
Imagine, por exemplo, se funcionario tiver um metodo que pessoa não tem, vc nao pode fazer
Funcionario F = new Pessoa();
F.metodoQuePessoaNaoTem(); /* ta loko ?!?! */
A sua pergunta não é idiota. lhe falta pratica pra pegar estes detalhes.
Por exemplo, todos os metodos em Java são virtuais. De uma estudada sobre isso.
E nem falamos de Interfaces 