public class Referencias { public static void main(String[] args) {
Gerente g = new Gerente();
g.setNome("PABLO");
g.setSalario(5000.0);
Funcionario f = new Funcionario();//devemos criar o metodo para esse objeto na classa ControleBonifica
f.setNome("PABLO");
f.setSalario(5000.0);
ControleBonificacao controle = new ControleBonificacao(); // criando o obejeto
// se nao for Gerente devo converter em gerente ((Gerente)g)
controle.registra(g);
controle.registra(f);
System.out.println("Gerente --> " + g.getBonifica());
System.out.println("Funcionario --> " + f.getBonifica());
}
Segunda Classe public class ControleBonificacao {
private double soma;
public void registra(Gerente g){
// esse getBonifica esta na class Gerente
double boni = g.getBonifica();
this.soma = this.soma + boni;
}
public void registra(Funcionario f){
// esse getBonifica esta na class Gerente
double boni = f.getBonifica();
this.soma = this.soma + boni;
}
} Terceira Classe public class Funcionario {
private String nome;
private String cpf;
//protected significa que é publico para filhos
private double salario;
private int tipo;
public int getTipo() {
return tipo;
}
public void setTipo(int tipo) {
this.tipo = tipo;
}
//String nome, String cpf, double salario public Funcionario() { return; }
public double bonifica() {
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;
}
void autentica(int i) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}