Tive um problema com o código, durante a aula o instrutos utiliza um método (override) para sobrescrever o método GetBonificacao() que tem na classe Pai funcionário para a classe filha Diretor. Ele usa esse método para corrigir um problema, entretetando, quando uso override dá um erro no programa: Sem override: Funcionario.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bytebank_ADM.Funcionarios
{
public class Funcionario
{
public string Nome { get; set; }
public string CPF { get; set; }
public double Salario { get; set; }
public double GetBonificacao()
{
return this.Salario *0.10;
}
}
}
Diretor.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bytebank_ADM.Funcionarios
{
public class Diretor:Funcionario
{
public double GetBonificacao()
{
return this.Salario;
}
}
}
GerenciadorBonificacao:
using bytebank_ADM.Funcionarios;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bytebank_ADM.Utilitario
{
internal class GerenciadorBonificacao
{
public double TotalBonificacao { get; private set; }
public void Registrar(Funcionario funcionario)
{
this.TotalBonificacao += funcionario.GetBonificacao();
}
public void Registrar(Diretor diretor)
{
this.TotalBonificacao += diretor.GetBonificacao();
}
}
}
Programa.cs:
`
using bytebank_ADM.Funcionarios;
using bytebank_ADM.Utilitario;
Funcionario Pedro = new Funcionario(); Pedro.Nome = "Pedro Inácio"; Pedro.CPF = "12345678900"; Pedro.Salario = 2050; Console.WriteLine(Pedro.Nome); Console.WriteLine(Pedro.GetBonificacao());
var Roberta = new Diretor(); Roberta.Nome = "Roberta Aparecida"; Roberta.CPF = "98765432100"; Roberta.Salario = 5200; Console.WriteLine(Roberta.Nome); Console.WriteLine(Roberta.GetBonificacao());
GerenciadorBonificacao gerenciador = new GerenciadorBonificacao();
gerenciador.Registrar(Pedro); gerenciador.Registrar(Roberta);
Console.WriteLine("Total de bonificações: " + gerenciador.TotalBonificacao);
`
Se coloco o override, aparece esse erro: