Não consigo entender a necessidade da variável 'private double soma', na aula 02 Aplicando Polimorfismo. Alguém pode me ajudar por favor?
Não consigo entender a necessidade da variável 'private double soma', na aula 02 Aplicando Polimorfismo. Alguém pode me ajudar por favor?
Olá Luan, tudo bem?
Acredito que a variável que você se refere é do seguinte trecho de código certo?
public class ControleBonificacao {
    private double soma;
    public void registra(Funcionario f) {
        double boni = f.getBonificacao();        
        this.soma = this.soma + boni;
    }
    public double getSoma() {
        return soma;
    }
}De uma forma resumida, essa variável vai receber a soma das bonificações.
Quando no arquivo TesteReferencias nós criamos instancias de Gerente, Funcionario e EditorVideo, colocamos salários para eles certo?
Com base no salário deles é calculada a bonificação individual de cada um. O gerente recebe 1 salário, o funcionário recebe 5% e o editor de vídeo 100 reais. Isso significa que toda vez que a gente usar controle.registra() vamos estar incrementando aquela variável soma.
No código da aula:
public class TesteReferencias {
    public static void main(String[] args) {
        Gerente g1 = new Gerente();
        g1.setNome("Felipe");
        g1.setSalario(5000.90);
        Funcionario f1 = new Funcionario();
        f1.setNome("Nicolas");
        f1.setSalario(3500.99);
        EditorVideo ev = new EditorVideo();
        ev.setNome("Eduarda");
        ev.setSalario(2500.50);
        ControleBonificacao controle = new ControleBonificacao();
        controle.registra(g1);
        controle.registra(f1);
        controle.registra(ev);
        System.out.println(controle.getSoma());
    }
}Veja, quando executamos essas 3 linhas de código, estamos pegando a bonificação de cada funcionário e incrementando naquela variável soma. 
controle.registra(g1); // Incrementa em soma a bonificação do gerente (que é 1 salário de 5000).
controle.registra(f1); // Incrementa em soma a bonificação do funcionário genérico (que é 5%).
controle.registra(ev); // Incrementa em soma a bonificação do editor de vídeo (que é de 100 reais).No final, nos usamos o método getSoma() que imprime todos os valores incrementados a variável soma:
System.out.println(controle.getSoma());Espero que minha explicação tenha ficado mais claro. Forte abraço e bons estudos!