Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exibir saída no console da bonificação de cada Funcionario individualmente

public class TesteReferencias {

    public static void main(String[] args) {
        Funcionario funcionario = new Funcionario();
        funcionario.setSalario(2200);

        Gerente gerente = new Gerente();
        gerente.setSalario(4000);

        Diretor boss = new Diretor();
        boss.setSalario(8000);

        ControleBonificacao controle = new ControleBonificacao();
        controle.registraBonificacao(funcionario);
        controle.registraBonificacao(gerente);
        controle.registraBonificacao(boss);

        System.out.println(controle.getSoma());
        System.out.println(controle.getSoma());
        System.out.println(controle.getSoma());
    }

}

Minha dúvida é de como posso exibir a saída da bonificação de cada funcionário de forma individual, pois nesse código, ele só mostra a bonificação do último (Diretor).

Console:

20710.0
20710.0
20710.0
1 resposta
solução!

Oie Maycon, tudo bem com você?

Na verdade ele exibe a soma de todas as bonificações e não apenas a bonificação do diretor.

Segue explicação no código:

public class ControleBonificacao {
    private double soma;

    public void registraBonificacao(Funcionario f) { 
// toda vez que esse método é chamado ele recebe um objeto com referência de "Funcionario", e guarda a bonificação do "Funcionario" em uma variável e faz um cálculo somando a bonificação do objeto que foi recebido agora com o objeto que foi recebido anteriormente 
        double boni = f.getBonificacao();
        this.soma = this.soma + boni; // se esse método foi chamado 3x, então essa soma vai ser: bonificação do funcionário + bonificação do gerente + bonificação do boss
    }
}

Para exibir individualmente a bonificação de um, é só colocar o seguinte código:

public class TesteReferencias {

    public static void main(String[] args) {
        Funcionario funcionario = new Funcionario();
        funcionario.setSalario(2200);

        Gerente gerente = new Gerente();
        gerente.setSalario(4000);

        Diretor boss = new Diretor();
        boss.setSalario(8000);

        System.out.println(funcionario.getBonificacao());
        System.out.println(gerente.getBonificacao());
        System.out.println(boss.getBonificacao());
    }

}

Espero que eu tenha ajudado, qualquer dúvida ou problema fico a disposição :)

Bons estudos!