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

Por que soma?

E aí galera, tudo bem com vcs? Então, pode ser uma dúvida meio boba ou falta de atenção minha, mas depois de assistir a aula da aplicação do polimorfismo, na parte onde o professor molda a classe do controle de bônus, eu fiquei um pouco com dúvida do porque a soma ocorre, visto que ele não deu nenhum valor ao double soma.

public class BonusControl{

    private double soma;

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

    public double getSoma() {
        return this.soma;
    }
}

E quando colocamos em prática o "bonus.registra(manager);" (manager é o nome da minha classe gerente) ele soma normalmente com o salário. Como essa soma ocorre?

1 resposta
solução!

Oie Pedro, tudo bem contigo?

No Java, as variáveis que forem criadas dentro da classe serão inicializadas automaticamente, ou seja, a variável "soma" nasce valendo 0. Agora se ela for criada dentro de um método, ela não será inicializada automaticamente e ai acontecerá uma exception. Por isso, como a variável "soma" é declarada como um atributo da classe, ela será inicializada automaticamente como 0, permitindo a soma acontecer.

A soma dessa classe "BonusControl", é a soma de todas as bonificações dos objetos que são "filhas" da classe "Funcionario" que são registrados nessa classe. Por isso não é a soma do salário que é feita, e sim da bonificação que cada funcionário recebe.

Espero que eu tenha conseguido ajudar, qualquer coisa fico a disposição :)

Bons estudos!