Boa tarde, ao compilar o código meu código demonstra o seguinte resultado
Bonificação de uma referencia de Diretor: 8250
Bonificação de uma referencia de Funcionario: 8250
Carlos
200
Roberto
8250
Total de bonificações: 8450
Não entendi o motivo da alteração do valor, alguém poderia explicar? Segue o código abaixo
static void Main(string[] args)
{
GerenciadorBonificacao gerenciador = new GerenciadorBonificacao();
Funcionario carlos = new Funcionario
{
Nome = "Carlos",
CPF = " 12589070705",
Salario = 2000
};
gerenciador.Registrar(carlos);
Diretor roberto = new Diretor
{
Nome = "Roberto",
CPF = " 70705780705",
Salario = 7500
};
Funcionario robertoTeste = roberto;
Console.WriteLine("Bonificação de uma referencia de Diretor: " + roberto.GetBonificacao());
Console.WriteLine("Bonificação de uma referencia de Funcionario: " + robertoTeste.GetBonificacao());
gerenciador.Registrar(roberto);
Console.WriteLine(carlos.Nome);
Console.WriteLine(carlos.GetBonificacao());
Console.WriteLine(roberto.Nome);
Console.WriteLine(roberto.GetBonificacao());
Console.WriteLine("Total de bonificações: " + gerenciador.GetTotalBonificacao());
Console.ReadLine();
}
Classe Funcionario
public class Funcionario
{
public string Nome { get; set; }
public string CPF { get; set; }
public double Salario { get; set; }
public virtual double GetBonificacao()
{
return Salario * 0.10;
}
}
}
Classe GerenciadorBonificacao
public class GerenciadorBonificacao
{
private double _totalBonificacao;
public void Registrar(Funcionario funcionario)
{
_totalBonificacao += funcionario.GetBonificacao();
}
public double GetTotalBonificacao()
{
return _totalBonificacao;
}
E por último Classe Diretor
public class GerenciadorBonificacao
{
private double _totalBonificacao;
public void Registrar(Funcionario funcionario)
{
_totalBonificacao += funcionario.GetBonificacao();
}
public double GetTotalBonificacao()
{
return _totalBonificacao;
}