Percebi que não precisa necessariamente passar a referencia como Funcionario, passando a referencia como Gerente, EditorVideo o polimorfismo já da conta de entender que aquela referencia é um Funcionario altomaticamente, correto?
Class main
public class TestaGerente {
public static void main(String[] args) {
Gerente gerente = new Gerente();
gerente.setSalario(2000.0);
EditorVideo editor = new EditorVideo();
editor.setSalario(1500.0);
Funcionario funcionario = new Funcionario();
funcionario.setSalario(1000.0);
ControllerBonificacao controller = new ControllerBonificacao();
System.out.println("O salario total de cada cargo é:");
controller.getBonificacaoTotal(gerente);
controller.getBonificacaoTotal(editor);
controller.getBonificacaoTotal(funcionario);
}
}
class ControllerBonificacao
public class ControllerBonificacao {
public void getBonificacaoTotal(Funcionario f) {
double salarioTotal = f.getSalario() + f.getBonificacao();
System.out.println("O pagamento total deste funcionario é: " + "salario " + f.getSalario() + " + bonificação: "
+ f.getBonificacao() + " igual à: " + salarioTotal);
}
}
saida:
O salario total de cada cargo é:
O pagamento total deste funcionario é: salario 2000.0 + bonificação: 2200.0 igual à: 4200.0
O pagamento total deste funcionario é: salario 1500.0 + bonificação: 1600.0 igual à: 3100.0
O pagamento total deste funcionario é: salario 1000.0 + bonificação: 100.0 igual à: 1100.0