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

Porque aparece o valor de 5575.0

Estou pra morrer com o método getSoma(), porque aparece 5575.0?

Se passa o seguinte

Gerente g1 = new Gerente();
            g1.setNome("Marcos");
            g1.setSalario(5000.0);

            Funcionario f = new Funcionario();
            f.setSalario(2000.0);

            EditorVideo ev = new EditorVideo();
            ev.setSalario(2500.0);

            ControleBonificacao controle = new ControleBonificacao();
            controle.registra(g1);
            controle.registra(f);
            controle.registra(ev);

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

Não deveria passar aparecer somente o valor da bonificação e não o valor total do gerente, sendo que é informado 3 salários.

1 resposta
solução!

Oi Rogério, tudo bem?

No caso do Funcionario e do EditorVideo, é retornado valores mais baixos de bonificação.

Funcionario tem uma bonificação de 5% do salário, portanto retorna 100:

public double getBonificacao() {
        return this.salario * 0.05;
}

EditorVideo tem uma bonificação de 5% do salário + 100, portanto retorna 225:

public double getBonificacao() {
                System.out.println("Chamando o método de bonificacao do Editor de Video");
                return super.getBonificacao() + 100;
}

Porém, analisando classe Gerente, podemos observar que ele ganha uma bonificação muito maior que o Funcionario e o EditorVideo:

public double getBonificacao() {
            System.out.println("Chamando o método bonificacao do GERENTE");
            return super.getBonificacao() + super.getSalario();
}

Como podemos ver, ele não só recebe a bonificação padrão de 5% do salário que o Funcionario recebe, como esse valor de 5% também é somado ao valor equivalente ao próprio salário! Então ele recebe 5% do salário + valor do próprio salário como bonificação.

Fazendo as contas com as bonificações, temos:

5% do salário do Funcionario, que equivale a 100 reais

+

5% do salário do EditorVideo (125) + 100, que equivale a 225 reais

+

5% do salário do Gerente (250) + valor do próprio salário (5000), que equivale a 5250 reais

Resultando em 5575 no total

Espero ter ajudado, qualquer dúvida é só avisar!

Bons estudos!!