Pessoal, tenho uma dúvida. Conheço bem a ideia do polimorfismo, e a utilidade dele para criar um método que receba como parametro as classes mais altas ou interfaces. No entanto, minha dúvida seria na execução, no dentro do metodo main mesmo. Eu sei que quando escrevemos (Considerem que a classe Gerente estende Funcionario)
Funcionario gerente = new Gerente();
a minha referencia é do tipo funcionário, então ela não enxergaria os métodos que existem somente na minha classe Gerente. Sendo assim não consigo ver a vantagem em declarar desta forma sendo que eu perco os métodos específicos da classe q eu instanciei.
Alguém pode me explicar isso? Ou me dizer se isso funciona, mas não é uma boa pratica, o correto seria fazer:
Gerente gerente = new Gerente();