1
resposta

[Projeto] Minha solução

namespace Teste4_Alura.ExercicioOO;

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

    public override void ExibirInfo()
    {
        Console.WriteLine($""""

            Titulo: {Titulo}
            Paginas: {nPaginas}
            """");
    }
}
namespace Teste4_Alura.ExercicioOO;

internal class AulaGravada : Conteudo
{
    public AulaGravada(string titulo, int duracao) : base(titulo)
    {
        Duracao = duracao;
    }

    public int Duracao { get; set; }

    public override void ExibirInfo()
    {
        Console.WriteLine($""""
            Titulo: {Titulo}
            Duracao: {Duracao} min
            """");
    }
}
namespace Teste4_Alura.ExercicioOO;

internal class Conteudo
{
    public string Titulo { get; set; }
    public Conteudo(string titulo)
    {
        Titulo = titulo;
    }


    public virtual void ExibirInfo()
    {

    }
}
#region Avaliacao de conteudo de em uma Plataforma
using Teste4_Alura.ExercicioOO;

List<Conteudo> conteudos = new List<Conteudo>
{
    new AulaGravada("POO na Pratica", 45),
    new MaterialComplementar("Resumo do Modulo 2", 12)
};

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

#endregion
1 resposta

Olá, Ulysses, como vai?

Sua implementação atende corretamente ao objetivo da atividade e demonstra um bom entendimento de polimorfismo por subtipos. A classe base define o contrato comum e as classes derivadas sobrescrevem o comportamento de forma adequada, permitindo que a lista de Conteudo funcione de maneira transparente no foreach.

Parabéns pela solução e obrigado por compartilhar seu código.

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