Uma dúvida que me veio foi a seguinte, no exemplo do Bytebank, onde temos uma classe SistemaInterno
public class SistemaInterno {
private int senhainterna = 2222;
public void autentica(Autenticavel fa) {
boolean autenticou = fa.autentica(senhainterna);
if(autenticou) {
System.out.println("Entro");
}
else {
System.out.println("Nem");
}
}
}
A interface Autenticavel
public abstract interface Autenticavel {
public abstract void setSenha(int senha);
public abstract boolean autentica(int senha);
}
Podemos utilizar a interface como beneficio de um cliente e um gerente acessar o SistemaInterno e superamos o fato de antes estar utilizando herança e o cliente acabava se tornando um funcionário. Mas uma coisa que achei estranha foi o seguinte, eu tenho o metodo getSenha e autentica nas classes Gerente, Cliente, Administrador e outras classes se necessário, e ai tem muito código repetido, o mesmo metodo get e autentica copiado em várias partes do código, teria alguma forma de centralizar este código ou através de interfaces cada metodo só poderá mesmo ser implementado direto em cada classe?