Minha dúvida é simples, hoje o código para a Classe SistemaInterno é o seguinte.
public class SistemaInterno{
private int senha = 2222;
public void autentica(Autenticavel aut) {
if (aut.autentica(this.senha))
System.out.println("Pode entrar no sistema");
else
System.out.println("Não pode entrar no sistema");
}
}
Caso eu quisesse que o código na verdade fosse algo do tipo
public class SistemaInterno {
private int senha = 2222;
public void autentica(Autenticavel aut,String nome) {
if (aut.autentica(this.senha))
System.out.println(nome + " pode entrar no sistema");
else
System.out.println(nome + " não pode entrar no sistema");
}
}
Quando eu chamasse este metodo eu teria que fazer algo do tipo
Administrador a1 = new Administrador();
a1.setNome("Gabriel");
si.autentica(a1, a1.getNome());
Entetanto isso me força a usar o getNome, essa seria a forma mais usual de se fazer OU vocês possuem alguma ideia que eu consiga fazer isso de forma mais generica de forma que eu só precisasse passar um Autenticavel como paramero?
Sei que isso depende muito de como a estrutura do meu código foi montada, mas usando como base o curso de Java sobre Interfaces e Classes Abstratas, vocês simplesmente passarião da forma que eu fiz ou farião algum outro esquema nas classes Cliente/Funcionario?