o teste de controle é o primeiro codigo, os demais são os objetos criados.
package pedro;
public class TesteReferencia {
public static void main(String[] args) {
Gerente g1 = new Gerente();
g1.setNome("Marcos");
g1.setSalario(5000.0);
EditorVideo ev = new EditorVideo();
ev.setSalario(2500.0);
Designer d = new Designer();
d.setSalario(2000.0);
ControleBonificacao controle = new ControleBonificacao();
controle.registra(g1);
controle.registra(ev);
controle.registra(d);
System.out.println(controle.getSoma());
}
}
package pedro;
//gerente é um funcionario, então ele herda a classe funcionario.
public class Gerente extends Funcionario {
private int senha;
private String login;
public double getBonificacao(){
System.out.println("chamando o metodo de bonificação do gerente");
return super.getBonificacao() + super.getSalario();
}
public void setSenha(int senha){
this.senha = senha;
}
public boolean autentica(int senha){
if(this.senha == senha){
return true;
} else{
return false;
}
}
public void setLogin(String login){
this.login = login;
}
public boolean autentica(String login, int senha){
if(this.login == login && autentica(senha)){
return true;
} else{
return false;
}
}
}
package pedro;
public class Designer extends Funcionario {
public double getBonificacao() {
System.out.println("chamando o metodo de bonificação do Designer");
return 200;
}
}
package pedro;
public class EditorVideo extends Funcionario {
public double getBonificacao() {
System.out.println("chamando o metodo de bonificação do Editor de Video");
return super.getBonificacao() + 100;
}
}
package pedro;
public class Funcionario {
private String nome;
private String cpf;
private double salario;
public double getBonificacao(){
return this.salario * 0.1;
}
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;
}
}
package pedro;
public class ControleBonificacao {
private double soma;
public void registra(Funcionario f){
double boni = f.getBonificacao();
this.soma = this.soma + boni;
}
public double getSoma() {
return soma;
}
}
toda vez que rodo, meu resultado da um valor diferente do professor, já verifiquei o código um do lado do outro, alguém pode me ajudar?