Resolução:
Funcionario.cs
namespace PraticandoC_05.CadastroFuncionarios02
{
internal abstract class Funcionario
{
public string? Nome { get; protected set; }
public string? Cargo { get; protected set; }
}
}
IResumo.cs
namespace PraticandoC_05.CadastroFuncionarios02
{
internal interface IResumo
{
string Resumo { get; }
}
}
Interno.cs
namespace PraticandoC_05.CadastroFuncionarios02
{
internal class Interno : Funcionario, IResumo
{
public Interno(string? nome, string? cargo, decimal salario)
{
Nome = nome;
Cargo = cargo;
Salario = salario;
}
public decimal Salario { get; set; }
public string Resumo =>
$"Funcionário(a) {Nome} – Cargo: {Cargo} – Salário: R$ {Salario}\n";
}
}
Freelancer.cs
namespace PraticandoC_05.CadastroFuncionarios02
{
internal class Freelancer : Funcionario, IResumo
{
public decimal ValorProjeto { get; set; }
public Freelancer(string? nome, string? cargo, decimal valorProjeto)
{
Nome = nome;
Cargo = cargo;
ValorProjeto = valorProjeto;
}
public string Resumo =>
$"Funcionário(a) {Nome} – Cargo: {Cargo} – Projeto atual: R$ {ValorProjeto}\n";
}
}
Program.cs
using PraticandoC_05.CadastroFuncionarios02;
var interno1 = new Interno("Harry", "Desenvolvedor Pleno", 10000.00m);
var freelancer1 = new Interno("Sunny", "Designer Especializado", 7000.00m);
Console.WriteLine(interno1.Resumo);
Console.WriteLine(freelancer1.Resumo);