Pessoal tenho duas classes diretor e gerente que são filhas de Funcionario. Porém a classe Diretor exige que eu coloco o tipo como abstract mas a gerente não. E se coloco na gerente, ela não compila. Por que um precisa do abstract e outra não se ambas são filhas de funcionario?
abstract class Funcionario {
protected String nome;
protected String cpf;
protected double salario;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return this.nome;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCpf() {
return this.cpf;
}
public void setSalario(double salario) {
this.salario = salario;
}
public double getSalario() {
return this.salario;
}
abstract double getBonificacao();
public void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("Bonus: " + this.getBonificacao());
}
}
public abstract class Diretor extends Funcionario implements Autenticavel {
private int senha;
public void cobraRelatorios() {
System.out.println("Preciso dos relatórios!");
}
@Override
double getBonificacao() {
return this.salario * 0.35;
}
@Override
public boolean autentica(int senha) {
if(this.senha == senha) {
return true;
}
else {
return false;
}
}
}
public class Gerente extends Funcionario implements Autenticavel {
private int senha;
public boolean autentica(int senha) {
if(this.senha == senha) {
System.out.println("Acesso permitido!");
return true;
}
else
{
System.out.println("Acesso negado!");
return false;
}
}
public double getBonificacao() {
return this.salario * 1.4 + 1000;
}
}