Coloquei um valor no meu atributo senha para cada classe que tinha como interface implementada "Autenticavel", porem, quando utilizo o metodo autentica com a senha correspondente ao atributo, ele nao devolve como verdadeiro. Eu nao sei como resolver.
public class Program {
public static void main(String[] args) {
Cliente cliente = new Cliente();
cliente.setSenha(1111);
Gerente gerente = new Gerente();
gerente.setSenha(2222);
Administrador adm = new Administrador();
adm.setSenha(3333);
SistemaInterno si = new SistemaInterno();
si.autentica(cliente);
si.autentica(gerente);
si.autentica(adm);
}
}
public class Cliente implements Autenticavel{
private int senha = 1111;
@Override
public void setSenha(int senha) {
this.senha = senha;
}
@Override
public boolean autentica(int senha) {
if(this.senha == senha) {
System.out.println("Cliente: " + true);
return true;
}else {
return false;
}
}
}
public class Gerente extends Funcionario implements Autenticavel{
private int senha = 2222;
@Override
public double getBonificacao() {
return super.getSalario();
}
@Override
public void setSenha(int senha) {
this.senha = senha;
}
@Override
public boolean autentica(int senha) {
if(this.senha == senha) {
System.out.println("Gerente: " + true);
return true;
}else {
return false;
}
}
}
public class Administrador extends Funcionario implements Autenticavel{
private int senha = 3333;
@Override
public double getBonificacao() {
return 50;
}
@Override
public void setSenha(int senha) {
this.senha = senha;
}
@Override
public boolean autentica(int senha) {
if(this.senha == senha) {
System.out.println("ADM: " + true);
return true;
}else {
return false;
}
}
}
public class SistemaInterno {
private int senha = 2222;
public void autentica(Autenticavel g) {
boolean autenticou = g.autentica(this.senha);
if(autenticou) {
System.out.println("Login efetuado");
}else {
System.out.println("Login nao efetuado");
}
}
}
public abstract interface Autenticavel{
public abstract void setSenha(int senha);
public abstract boolean autentica(int senha);
}
saída no console: