1
resposta

[Projeto] Execução de tarefas agendadas

public abstract class TarefaAgendada
{
public abstract void Executar();
}


public class BackupTarefa : TarefaAgendada
{
public override void Executar()
{
    Console.WriteLine("Executando tarefa de backup...");
}
}


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


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


List<TarefaAsgendada> tarefas = new List<TarefaAgendada>
{
new BackupTarefa(),
new RelatorioTarefa(),
new LimpezaTarefa()
};

foreach (var tarefa in tarefas)
{
tarefa.Executar();
}
1 resposta

Olá, Jonas, como vai?

O código que você desenvolveu demonstra uma excelente aplicação do conceito de classes abstratas e polimorfismo de subtipos. Ao utilizar a palavra-chave override nas classes filhas, você garantiu que o comportamento específico de cada tarefa fosse respeitado durante a iteração na lista, o que é um pilar fundamental da orientação a objetos.

Notei apenas um pequeno detalhe de digitação na declaração da lista, onde foi escrito TarefaAsgendada em vez de TarefaAgendada, o que impediria a compilação por não encontrar o tipo correto.

Parabéns pelo exercício e por compartilhar sua evolução no fórum.

Continue praticando e o fórum está a disposição.

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