Java não permite herança múltipla(herdar de mais de uma classe), e no modelo proposto pelo exercício já temos herança de Gerente , Adminstrador para Funcionario. Que por sinal é um uso que faz sentido , porque temos a relação " é um" das classes filhas para a classe pai (Gerente e Adminstrador "é um" Funcionario)
Vamos supor que os métodos setSenha e autentica foram definidos na classe abstrata Funcionario . E
que agora o sistema modele uma classe para visitantes que possam frequentar a empresa(classe VISITANTE) e que eles precisam ser autenticados.
Muito fácil que o visitante seja autenticado , basta que essa classe herde de Funcionario , e o código será reaproveitado(ou sobrescrito), mas acabamos de criar outro problema VISITANTE é um FUNCIONARIO?
NÃO! eles apenas necessitam de COMPORTAMENTOS para autenticação, por isso foi criado a interface AUTENTICAVEL, para que toda classe que precise ser autenticável possar ser implementando a interface.
Mas se a lógica de autenticação se repetir muito, você pode encapsular em uma classe , e sair reaproveitando.
Esses cursos abordam esse assunto de design de código e podem te dar uma maior compreensão sobre essas questẽos.
https://cursos.alura.com.br/course/orientacao-objetos-java
https://cursos.alura.com.br/course/orientacao-a-objetos-avancada-e-principios-solid