Senhores, ótima noite.
Estou com um desafio na chamada do método getSoma() da classe ControleBonificacao(), os valores aparetemente não batem, segue exemplo.
public class TestePolimorfismo {
public static void main(String[] args) {
Tecnico tecnico = new Tecnico();
Especialista especialista = new Especialista();
Gerente gerente = new Gerente();
tecnico.setSalario(1000.00);
especialista.setSalario(2000.00);
gerente.setSalario(3000.00);
ControleBonificacao controle = new ControleBonificacao();
controle.registra(tecnico);
controle.registra(especialista);
controle.registra(gerente);
System.out.println(controle.getSoma());
}
}
public class Gerente extends Funcionario{
private int senha;
public boolean autenticacao(int senha) {
if (this.senha == senha) {
return true;
} else {
return false;
}
}
public void setSenha(int senha) {
this.senha = senha;
}
public double getBonificacao() {
return super.getSalario() + super.getBonificacao();
}
}
public class Especialista extends Funcionario {
public double getBonificacao() {
return super.getSalario() + super.getSalario() * 0.5
public class Tecnico extends Funcionario {
public double getBonificacao() {
return super.getSalario() + (super.getSalario() * 0.25);
}
}
public class ControleBonificacao {
private double soma;
public void registra(Funcionario funcionario) {
double bonificacao = funcionario.getBonificacao();
this.soma = this.soma + bonificacao;
}
public double getSoma() {
return this.soma;
}
}