Olá Matheus, tudo tranquilo?
Isso acontece porque, em tempo de compilação, o Java só enxerga o tipo da variável e não o que está dentro dela.
Isso é bom e ruim... o lado ruim é que agora estamos limitados a usar apenas os métodos da classe Funcionario
e, em nosso caso, setSenha()
é um método cuja utilização está restrita à classe Gerente()
.
Já o lado bom se chama polimorfismo, mas eu acredito não poder demonstrar esse recurso de forma clara sem criar mais dúvidas ainda... felizmente esse será justamente o assunto discutido nas próximas aulas desse curso. Mas não se esqueça, o Java só é capaz de enxergar o tipo da variável, portanto do ponto de vista dele, enquanto ainda estamos escrevendo nosso código, nosso acesso está limitado aos membros da classe Funcionario
. Pelo menos por enquanto! ;)
Espero ter ajudado, se ficou alguma dúvida é só avisar!
Bons estudos!!