1
resposta

[Projeto] Minha resolução

namespace Teste4_Alura.ExercicioOO;

internal class LimpezaTarefa : TarefaAgendada
{
    public override void Executar()
    {
        Console.WriteLine("Limpando arquivos temporários do servidor...");
    }
}
namespace Teste4_Alura.ExercicioOO;

internal class RelatorioTarefa : TarefaAgendada
{
    public override void Executar()
    {
        Console.WriteLine("Gerando e enviando relatório diário...");
    }
}
namespace Teste4_Alura.ExercicioOO;

internal class BackupTarefa : TarefaAgendada
{

    public override void Executar()
    {
        Console.WriteLine("Executando tarefa de backup do sistema...");
    }

}
namespace Teste4_Alura.ExercicioOO;

internal abstract class TarefaAgendada
{
    public abstract void Executar();
      
}
#region Execucao de Terefas agendadas
/*
List<TarefaAgendada> tarefas = new List<TarefaAgendada>
{
    new BackupTarefa(),
    new RelatorioTarefa(),
    new LimpezaTarefa()
};

foreach (var tarefa in tarefas)
{
    tarefa.Executar();
}
*/
#endregion
1 resposta

Olá, Ulysses, como vai?

Sua implementação atende corretamente ao objetivo da atividade e demonstra um bom entendimento de polimorfismo de subtipos. A classe abstrata define o contrato esperado e as classes concretas sobrescrevem o método Executar de forma coerente, permitindo que todas sejam tratadas pelo mesmo tipo base.

O código está claro, organizado e segue a lógica proposta, usando herança e sobrescrita de maneira adequada. A execução via lista de TarefaAgendada reforça bem o conceito de despacho dinâmico, já que cada objeto responde conforme sua própria implementação.

Parabéns pela resolução e obrigado por compartilhar sua implementação. O fórum segue à disposição para novas dúvidas, ideias ou exercícios que queira discutir.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!