namespace PraticandoObjetocomHeranca.Interfaces;
internal interface IServico
{
public void ExecutarServico();
}
namespace PraticandoObjetocomHeranca.Classes;
internal class Funcionario
{
//Atributos
public string Nome { get; }
public string Departamento { get; }
//Construtor
public Funcionario(string nome, string departamento)
{
Nome = nome;
Departamento = departamento;
}
}
namespace PraticandoObjetocomHeranca.Classes;
using PraticandoObjetocomHeranca.Interfaces;
internal class Manutencao: IServico
{
//Atributos
public string TituloTarefa { get; set; }
public Funcionario Funcionario { get; set; }
//Construtor
public Manutencao (string tituloTarefa, Funcionario funcionario)
{
TituloTarefa = tituloTarefa;
Funcionario = funcionario;
}
//Métodos
public void ExecutarServico()
{
Console.WriteLine($"Executando serviço de manutenção: {TituloTarefa}");
Console.WriteLine($"Resposável: {Funcionario.Nome} - Departamento: {Funcionario.Departamento} \n");
}
}
namespace PraticandoObjetocomHeranca.Classes;
using System.Runtime;
using PraticandoObjetocomHeranca.Interfaces;
internal class Consultoria : IServico
{
//Atributos
public string TituloTarefa { get; }
public Funcionario Funcionario { get; }
//Construtor
public Consultoria(string tituloTarefa, Funcionario funcionario)
{
TituloTarefa = tituloTarefa;
Funcionario = funcionario;
}
//Métodos
public void ExecutarServico()
{
Console.WriteLine($"Executando serviço de consultoria: {TituloTarefa}");
Console.WriteLine($"Responsável: {Funcionario.Nome} - Departamento: {Funcionario.Departamento} \n");
}
}
using PraticandoObjetocomHeranca.Classes;
using PraticandoObjetocomHeranca.Interfaces;
Funcionario tecnico = new Funcionario("João", "TI");
IServico s1 = new Manutencao("Atualização de servidor", tecnico);
Funcionario analista = new Funcionario("Marina", "Consultoria");
IServico s2 = new Consultoria("Planejamento estratégico", analista);
s1.ExecutarServico();
s2.ExecutarServico();