Boa noite, Leonardo! Como vai?
O parâmetro é do tipo Autenticavel
para permitir que objetos de todas as classes que implementem essa interface possam se logar no sistema! De modo que, se o parâmetro fosse do tipo FuncionarioAutenticavel
, então apenas os objetos das classes que herdassem dela poderiam se logar. Com isso, objetos de classes como a ParceiroComercial
deixariam de poder efetuar o login, uma vez que essa classe não herda de FuncionarioAutenticavel
e, por questões de coerência nem poderia!
Sendo assim, é apenas através de um parâmetro do tipo Autenticavel
que o método é capaz de receber qualquer objeto passível de se logar no sistema, seja ele um funcionário ou até mesmo um parceiro comercial.
Pegou a ideia? Qualquer coisa é só falar!
Grande abraço e bons estudos, meu aluno!