Olá amigo,
Fiz uma alteração no seu código no método mostraEmpregados() da classe Empresa. Espero ter esclarecido sua dúvida existe um serie de asterisco (******) nos cometarios que fiz. Resumindo você está passando argumentos incompativeis para o metodo. Você está passando um array de Funcionarios e o método está recebendo um array de int.
Espero ter ajudado.
// nessa linha abaixo você esta passando empregados como int[]
// e empregados é tipo "Funcionario" *******
/* void mostraEmpregados(int[] empregados) {
----> aqui abaixo é o mesmo problema ******
for (int x : empregados) {
System.out.println(empregados[x]);
}
}*/
//---> Aqui foi a alteração que fiz....
void mostraEmpregados(Funcionario[] empregados) {
for (Funcionario x : empregados) {
System.out.println(x);
}
}