Não importa o que eu coloque no retorno do método GetBonificacao()
da classe Diretor
, o retorno sempre acompanha a regra de negócio da classe Funcionário
. Também dá o seguinte erro, pedindo para colocar new
, antes de "double", em public double GetBonificacao()
:
C:\Users\juuam\Documents\Dev\Alura\CSharp\DotNetCore\ByteBank\Funcionarios\Diretor.cs(7,23): warning CS0108:
"Diretor.GetBonificacao()" oculta o membro herdado "Funcionario.GetBonificacao()".
Use a nova palavra-chave se foi pretendido ocultar.
[C:\Users\juuam\Documents\Dev\Alura\CSharp\DotNetCore\ByteBank\ByteBank.csproj]
Segue o código:
// ByteBank > Funcionarios > Diretor.cs
using System;
namespace ByteBank.Funcionarios
{
public class Diretor : Funcionario
{
public double GetBonificacao()
{
return Salario;
}
}
}
// ByteBank > Funcionarios > Funcionario.cs
using System;
namespace ByteBank.Funcionarios
{
public class Funcionario
{
public string Nome { get; set; }
public string CPF { get; set; }
public double Salario { get; set; }
public double GetBonificacao()
{
return Salario * 0.1;
}
}
}
// ByteBank > Funcionarios > GerenciadorBonificacao.cs
using System;
namespace ByteBank.Funcionarios
{
public class GerenciadorBonificacao
{
private double _totalBonificacao;
public void Registrar(Funcionario funcionario)
{
_totalBonificacao += funcionario.GetBonificacao();
}
public double GetTotalBonificacao() {
return _totalBonificacao;
}
}
}
/// ByteBank > Program.cs
using System;
using ByteBank.Funcionarios;
class Program
{
static void Main(string[] args)
{
Funcionario carlos = new Funcionario();
carlos.Nome = "Carlos";
carlos.CPF = "123.123.123-12";
carlos.Salario = 500;
Funcionario roberta = new Funcionario();
roberta.Nome = "Roberta";
roberta.CPF = "456.456.456.45";
roberta.Salario = 2000;
GerenciadorBonificacao gerenciador = new GerenciadorBonificacao();
gerenciador.Registrar(carlos);
gerenciador.Registrar(roberta);
Console.WriteLine(gerenciador.GetTotalBonificacao());
Console.WriteLine(roberta.GetBonificacao());
Console.Read();
}
}
O que eu estou fazendo de errado?