Eu tenho o seguinte bloco de código: public static void main(String[] args) {
Gerente g = new Gerente();
g.setNome("Marcos");
g.setSalario(5000.0);
Funcionario f = new Funcionario();
f.setSalario(2000.0);
EditorDeVideo ev = new EditorDeVideo();
ev.setSalario(2500.0);
ControleBonificacao controle = new ControleBonificacao();
controle.registra(g);
controle.registra(f);
controle.registra(ev);
}
Class: Funcionário public class Funcionario {
private String nome;
private String cpf;
protected double salario;
public double getBonificacao() {
System.out.println("Chamando FUNCIONARIO");
return this.salario * 0.1;
}
} Class: Gerente public class Gerente extends Funcionario { private double senha;
public boolean autentica(int senha){
if(this.senha == senha){
return true;
}else{
return false;
}
}
public double getBonificacao(){
System.out.println("Chamando GERENTE");
return super.salario * 1 + 150;
}
}
Class: Controle Bonificação
public class ControleBonificacao {
private double soma;
public void registra(Funcionario f) {
double boni = f.getBonificacao();
this.soma = this.soma + boni;
}
public double getSoma(){
return this.soma;
}
}
Eu não entendi, como e porque é exibido: Chamando GERENTE, é porque a classe herda funcionário?