o utilizar os dois pontos para dizer que Diretor é funcionário, aparece em "Diretor"
na classe diretor:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ByteBank.Funcionarios
{
public class Diretor : Funcionario
{
public double GetBonificacao()
{
return Salario;
}
}
}
Classe Funcionario:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ByteBank.Funcionarios
{
public class Funcionario
{
private int _tipo;
public string Nome { get; set; }
public string CPF { get; set; }
public double Salario { get; set; }
public Funcionario(int tipo)
{
_tipo = tipo;
}
public double GetBonificacao()
{
if (_tipo == 1)
return Salario;
return Salario * 0.10;
}
}
}
Program:
using ByteBank.Funcionarios;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ByteBank
{
class Program
{
static void Main(string[] args)
{
GerenciadorBonificacao gerenciador = new GerenciadorBonificacao();
Funcionario carlos = new Funcionario(0);
carlos.Nome = "Carlos";
carlos.CPF = "546.879.157-20";
carlos.Salario = 2000;
gerenciador.Registrar(carlos);
Diretor roberta = new Diretor();
roberta.Nome = "Roberta";
roberta.CPF = "454.658.148-03";
roberta.Salario = 5000;
gerenciador.Registrar(roberta);
Console.WriteLine(carlos.Nome);
Console.WriteLine(carlos.GetBonificacao());
Console.WriteLine(roberta.Nome);
Console.WriteLine(roberta.GerenciadorBonificacao());
Console.WriteLine("Total de bonificações é: " + gerenciador.GetTotalBonificacao());
Console.ReadLine();
}
}
}
GerenciadorBonificacao:
using ByteBank.Funcionarios;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ByteBank
{
public class GerenciadorBonificacao
{
campo privado
private double _totalBonificacao;
Somaremos e atribuiremos (+=) funcionario.GerenciadorBonificacao() a esse campo, no escopo de registrar().
public void Registrar(Funcionario funcionario)
{
_totalBonificacao += funcionario.GetBonificacao();
}
public void Registrar(Diretor diretor)
{
_totalBonificacao += diretor.GetBonificacao();
}
public double GetTotalBonificacao()
{
return _totalBonificacao;
}
}
}
Erros:
Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão Erro CS7036 Não há nenhum argumento fornecido que corresponde ao parâmetro formal necessário "tipo" de "Funcionario.Funcionario(int)" ByteBank C:\Aprendendo CSharp\Curso 3\ByteBank\ByteBank\Funcionarios\Diretor.cs 10 Ativo
Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão Aviso CS0108 "Diretor.GetBonificacao()" oculta o membro herdado "Funcionario.GetBonificacao()". Use a nova palavra-chave se foi pretendido ocultar. ByteBank C:\Aprendendo CSharp\Curso 3\ByteBank\ByteBank\Funcionarios\Diretor.cs 12 Ativo