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;
    }
} 
             
             
            