1
resposta

Duvida se poderia implementar o metodo GetTotalBonificacao() na Classe Funcionario

Olá, Boa Noite,

Neste exercício de herança, foi criado uma classe "GerenciadorBonificação.cs" , com o codigo baixo:

public class GerenciadorBonificacao
    {
        private double _totalBonificacao;

        public void Registrar(Funcionario funcionario)
        {
            _totalBonificacao += funcionario.GetBonificacao();
        }

        public double GetTotalBonificacao()
        {
            return _totalBonificacao;
        }
    }

Eu pensei em levar este código para um construtor dentro da classe funcionário, isso seria uma prática ruim ou impossível? Aqui Funcionou pelo menos....Ficaria Assim:

public class Funcionario
    {
        public string Nome { get; set; }
        public string CPF { get; set; }
        public double Salario { get; set; }
        private double _totalBonificacao;

        public Funcionario()
        {
            _totalBonificacao += GetBonificacao();
        }

        public virtual double GetBonificacao()
        {
            return Salario * 0.10;
        }

        public double GetTotalBonificacao()
        {
            return _totalBonificacao;
        }
    }

Obrigado!

1 resposta

Olá Marcelo!

Tudo que está no construtor da classe é executado assim que o objeto é instanciado.

Em relação a sua pergunta, se o objetivo é dar a bonificação sempre que adicionar um funcionário novo, vai funcionar.

Porém não é aconselhável caso alguma outra classe herde de Funcionário, porque se tiver alguma regra diferente sobre o método GetBonificacao() e esse método também for chamado no construtor da classe filha, então serão executados os dois construtores, acumulando os valores.

Espero ter ajudado!