GerenciadorBonificação.cs:
public class GerenciadorBonificacao
{
private double _totalBonificacao;
public void Registrar (Funcionario funcionario)
{
_totalBonificacao += funcionario.GetBonificacao();
}
public void Registrar(Diretor diretor)
{
_totalBonificacao += GetTotalBonificacao();
}
public double GetTotalBonificacao()
{
return _totalBonificacao;
}
}
Diretor.cs:
//Dados Pessoais
public double GetBonificacao()
{
return Salario;
}
Funcionario.cs:
public class Funcionario
{
//Dados pessoais
public double GetBonificacao()
{
return Salario * 0.10;
}
}
Program.cs
static void Main(string[] args)
{
GerenciadorBonificacao gerenciador = new GerenciadorBonificacao();
Funcionario carlos = new Funcionario();
carlos.Nome = "Carlos";
carlos.CPF = "456.456.456-45";
carlos.Salario = 2000;
gerenciador.Registrar(carlos);
Diretor roberta = new Diretor();
roberta.Nome = "Roberta";
roberta.CPF = "890.890.890-89";
roberta.Salario = 5000;
gerenciador.Registrar(roberta);
Console.WriteLine(carlos.Nome);
Console.WriteLine(carlos.GetBonificacao());
Console.WriteLine(roberta.Nome);
Console.WriteLine(roberta.GetBonificacao());
Console.WriteLine("Total de bonificações: " + gerenciador.GetTotalBonificacao());
Console.ReadLine();
}
}
Ao final, o total de bonificação fica igual a 400, não 5200, por quê?