Só um comentário... ao utilizar o método "registra" na classe "ControleBonificacao", achei melhor guardar os valores das bonificações numa variável static, ou seja, o atributo "soma" pertence a própria classe e não a instância da classe. Isso seria bom para futuros registros, na hipótese de ter que criar novos objetos para registro de novos funcionários não acham? Segue a minha classe "ControleBonificacao"
public class ControleBonificacao {
private static double soma;
public void registra (Funcionario funcionario){
soma = soma + funcionario.getBonificacao();
}
public static double getSoma() {
return soma;
}
}