Boa noite.
Quando testo a classe TesteReferencias o método de bonificação do Designer não está sendo chamado. É chamado somente o método de bonificação da classe Funcionario. Já revi toda a parte 3 do curso e não encontrei meu erro.
Esse é o resultado da execução, "Total de bonificações R$ 5575.0", quando deveria ser 5675.0 ....
Abaixo seguem as classes...
- CONTROLE BONIFICAÇÃO
public class ControleBonificacao {
private double soma;
public void registra(Funcionario f) {
this.soma += f.getBonificacao();
}
// métodos get and set
public double getSoma() {
return soma;
}
}
- FUNCIONÁRIO
public class Funcionario {
private String nome;
private String cpf;
private double salario;
// common methods
public double getBonificacao() {
return this.salario * 0.05;
}
// methods getters and setters
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
- DESIGNER
public class Designer extends Funcionario {
public double getBoinificacao() {
System.out.println("Chamando método de bonificação do DESIGNER");
return 200;
}
}
- TESTE REFERENCIAS
public class TesteReferencias {
public static void main(String[] args) {
Funcionario f = new Funcionario();
f.setSalario(2000.0);
Funcionario g1 = new Gerente();
g1.setSalario(5000.0);
Funcionario e = new EditorVideo();
e.setSalario(2500.0);
Designer d = new Designer();
d.setSalario(2000.0);
ControleBonificacao controle = new ControleBonificacao();
controle.registra(f);
controle.registra(g1);
controle.registra(e);
controle.registra(d);
System.out.println("Total de bonificações R$ " + controle.getSoma());
}
}
Fico no aguardo..