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

Não está sendo feito a soma!

Olá! A intenção do código não era para somar os valores das bonificações? Se sim, não está fazendo de acordo, se não, entendi errado a ideia do vídeo. No System.out.println(controle.getSoma()); esta trazendo apenas um valor de bonificação. Colocando o sysout 2x, ele continua a repetir uma única bonificação e não soma e neste caso imprimi só a bonificação do "Designer".Classe "TesteReferencias" IClasse "Designer"

2 respostas

Bom dia Luiz, tudo bem? O problema deve estar na sua classe ControleBonifica lá o método registra não deve estar somando corretamente as bonificações Imagino que deva estar faltando um "+" antes do "="

Como imagino que deve estar:

    public class ControleBonificacao {

    private double soma;

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

    public double getSoma() {
        return soma;
    }

}

Como deve estar para funcionar a soma das bonificações:

public class ControleBonificacao {

    private double soma;

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

    public double getSoma() {
        return soma;
    }

}

Abraços, beba água, faça carinho em um doguinho e bons estudos!

solução!

Olá, Luís,

Poderia enviar o código da sua classe ControleBonifica. É nessa classe que se encontra a responsabilidade de somar, precisamos ver os métodos registra e getSoma. Além deles, seria interessante os métodos getBonificacao de todas as classes.

Dica: ao invés de tirar print da Tela para mostrar seu código, procure usar ``` no início e no final, ou clique no ícone </> e cole. Isso facilita a leitura dos demais.

Veja como fica usando esse recurso:

public class Designer extends Funcionario {

    public double getBonificacao() {
        System.out.println("Chamando o método de Bonificação do Designer");
        return 200;
    }
}