Seria interessante eu criar uma classe abstrata, FuncionarioAutenticavel, que estendesse Funcionario e Implementasse Autenticavel, quem fosse Funcionario e pudesse se autenticar estenderia essa classe. Eu também criaria outra classe, AutenticavelImpl, por exemplo, onde implementaria Autenticavel, daí quem não fosse Funcionario e pudesse se autenticar extenderia essa classe. Quero resolver esse problema usando herança. Talvez não seja uma boa porque duplicaria a lógica de autenticação.