Coloquei aqui pedaços do código pois é muito grande.
A ideia é criar uma interface que tem um tipo autenticável que autentica gerente e mais 2 classes, administrador e cliente.
o problema aqui é que não estou conseguindo trazer o construtor prédefinido no aplication, na construção do objeto.
a classe SistemaInterno que faz a autenticação conforme a senha passada.`
public abstract class Funcionario {
private String nome;
private String cpf;
private double salario;
//construtor
public Funcionario(String nome, String cpf, double salario) {
this.nome = nome;
this.cpf = cpf;
this.salario = salario;
}
public Funcionario() {
}
}
a área comentada é o construtor que apresenta erro
public class Gerente extends Funcionario implements Autenticavel {
//Aqui herda e implementa
private Autenticador autenticador;
// construtor super
//public Gerente(String nome, String cpf, double salario) {
//super(nome, cpf, salario);
//}
//composição
public Gerente() {
this.autenticador = new Autenticador();
}
@Override
public void setSenha(int senha) {
this.autenticador.setSenha(senha);
}
}
public interface Autenticavel {
public void setSenha(int senha);
public boolean autentica(int senha);
}
`
public class Autenticador {
private int senha ;
public void setSenha(int senha) {
this.senha = senha;
}
public boolean autentica(int senha) {
if (this.senha == senha)
return true;
else
return false;
}
}
public class SistemaInterno {
private int senha = 222;
public void autentica(Autenticavel fa) {
boolean autenticacao = fa.autentica(senha);
if (autenticacao) {
System.out.println(" senha correta");
}else {
System.out.println(" senha incorreta");
}
}
}