Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

instancia de objeto, Funcionario g = new Gerente(), porque utilizar desta forma?

Eu não consegui entender o porque de usar a instancia da forma:

Funcionario g = new Gerente();

se o métodos: "registra" consegue receber como parâmetro a instancia na forma:

Gerente g = new Gerente() ;
1 resposta
solução!

Olá Rodrigo,

todo o exemplo foi utilizado em um contexto para exemplificar o que é polimorfismo. Que é a capacidade de atribuir a uma variável do supertipo uma referência do subtipo e em tempo de execução chamar a versão do método do tipo da referência e não da variável.

Isso é o que o Java permite através da OO e polimorfismo.

Desta forma, entendo que o polimorfismo quem provoca é o método que recebe o objeto. Na classe de aplicação, você não precisa obrigatoriamente fazer essa atribuição, somente na classe que irá processar o objeto. A demonstração foi feita para mostrar que é possível.

Até porque, na classe aplicação vc estará manipulando métodos específicos do objetos, que não existem na sua superclasse. E se fizer ali o upcasting terá que ficar fazendo downcasting para executar esses métodos. =)