Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

dúvida

Eu nao consegui entender o porquê, qua a minha soma deu resultado totalmente difirente. A minha soma deu 8450.0, sendo que no método da classe Funcionario está o valor de 10% do salario. Quando eu intanciei Gerente e Funcionario, somou correto, mas quando instanciei o editorVideo, ele somou junto com a soma anterior, o salario total do editorVideo e a sua porcentagem (10% do salario).

Método bonificação da Classe mãe - Funcionario

public double getBonificacao() { //método específico da classe pai - class Funcionario
        return this.salario * 0.1;
    }

class ControleBonificacao

package bytebank_herdado;

public class ControleBonificacao {

    private double soma;

    public void registra(Gerente g) {
        double boni = g.getBonificacao();
        this.soma = this.soma + boni;

    }

    public void registra(Funcionario f) {
        double boni = f.getBonificacao();
        this.soma = this.soma + boni;
    }

    public void registra(EditorVideo e) {
        double boni = e.getBonificacao();
        this.soma = this.soma + boni;
    }

    public double getSoma() {
        return soma;
    }

}

class TestaReferencia

package bytebank_herdado;

public class TestaReferencia {

    public static void main(String[] args) {
        Gerente g1 = new Gerente();
        g1.setNome("Marcos");
        g1.setSalario(5000.0);

        Funcionario f1 = new Funcionario();
        f1.setNome("João");
        f1.setSalario(2000.0);

        EditorVideo e1 = new EditorVideo();
        e1.setNome("Marya");
        e1.setSalario(2500.0);


        ControleBonificacao controle = new ControleBonificacao();
        controle.registra(g1);
        controle.registra(f1);
        controle.registra(e1);
        System.out.println(controle.getSoma());

    }

}
2 respostas
solução!

Boa tarde Welliton.

Utilizei seu código e recriei apenas as Classes Gerente/Funcionario/VideoEditor e o resultado da execução foi 950.0 (se observar é 10% do valor total dos salários informados, que dá 9.500.0), sendo assim, peço que verifique suas classes de Gerente/Funcionario/VideoEditor para validar se não há sobreescrita do método e/ou compartilhe o projeto conosco.

Bons estudos!! Insira aqui a descrição dessa imagem para ajudar na acessibilidade

vou verificar.