Não consegui entender muito bem porque ao chamar o método que chama o método da bonificação, porque ou como ele consegue chamar o exato referente ao construtor?
Não consegui entender muito bem porque ao chamar o método que chama o método da bonificação, porque ou como ele consegue chamar o exato referente ao construtor?
Boa noite Raul, tudo bem?
Na classe 'Controle Bonificação' podemos ver que é passado como argumento a classe 'Funcionario' dentro do método 'registra':
public class ControleBonificacao {
private double soma;
public void registra(Funcionario f){
double boni = f.getBonificacao();
this.soma = this.soma + boni;
}
E como a classe'Funcionario' é a classe pai, ou seja, as outras classes herdam dela, como: 'Gerente' e 'Editor de Video', pois um gerente é UM funcionário e quem edita vídeo é UM funcionário. É possível saber qual classe chamar, pois ao chamar o método 'registra' na classe principal estamos passando como argumento o nome que foi dado as classes ao instanciar, exemplo:
ControleBonificacao controle = new ControleBonificacao();
controle.registra(gerente);
controle.registra(funcionario);
controle.registra(editorvideo);
System.out.println(controle.getSoma());
Isto acontece porque neste método registra, estamos passando a referência de um objeto da classe gerente, a referência de um objeto da classe funcionário, a referência de um objeto da classe editor vídeo, então ele irá pegar o 'getBonificacao' específico de cada uma.
Qualquer dúvida é só falar. Espero ter ajudado.