1
resposta

[Projeto] Avaliação de conteúdos em uma plataforma

Conteudo.cs

public class Conteudo
{
    public string Titulo { get; set; }

    public Conteudo(string titulo)
    {
        this.Titulo = titulo;
    }

    public virtual void ExibirInfo() { }
}

AulaGravada.cs

public class AulaGravada : Conteudo
{
    public int Duracao { get; set; }
    public AulaGravada(string titulo, int duracao)
        : base(titulo)
    {
        this.Duracao = duracao;
    }

    public override void ExibirInfo()
    {
        Console.WriteLine($"Título: {Titulo}");
        Console.WriteLine($"Duração: {Duracao} min");
    }
}

MaterialComplementar.cs

public class MaterialComplementar : Conteudo
{
    public int Paginas { get; set; }
    public MaterialComplementar(string titulo, int paginas)
        : base(titulo)
    {
        this.Paginas = paginas;
    }

    public override void ExibirInfo()
    {
        Console.WriteLine($"Título: {Titulo}");
        Console.WriteLine($"Páginas: {Paginas}");
    }
}

Program.cs

List<Conteudo> conteudos = new List<Conteudo>
{
    new AulaGravada("POO na prática", 45),
    new MaterialComplementar("Resumo do módulo 2", 12)
};

foreach (var conteudo in conteudos)
{
    conteudo.ExibirInfo();
}
1 resposta

Olá, Matheus, como vai?

O código apresentado atende perfeitamente ao que foi solicitado no exercício, demonstrando uma boa compreensão sobre como utilizar o polimorfismo de subtipos para tratar diferentes classes sob um mesmo tipo comum. A estrutura das classes está correta e a implementação do método virtual permitiu que cada subclasse exibisse suas informações específicas conforme esperado.

Parabéns pelo empenho em realizar a atividade e por compartilhar sua solução com a comunidade. Continue praticando e postando seus avanços por aqui.

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