Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resposta: avaliação de conteúdos em uma plataforma

Classe 1:

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

    public string Titulo { get; set; }

    public virtual void ExibirInfo()
    {

    }

}

Classe 2:

class AulaGravada : Conteudo
{
    public int Duração { get; set; }
    public AulaGravada(string titulo, int duração) : base(titulo)
    {
        Duração = duração;
    }
    public override void ExibirInfo()
    {
        Console.WriteLine($"Titulo: {Titulo}");
        Console.WriteLine($"Duração: {Duração} minutos.\n");
    }
}

Classe 3:

class MaterialComplementar : Conteudo
{
    public int Paginas { get; set; }
    public MaterialComplementar(string titulo, int paginas) : base(titulo)
    {
        Paginas = paginas;
    }
    public override void ExibirInfo()
    {
        Console.WriteLine($"Titulo: {Titulo}");
        Console.WriteLine($"Paginas: {Paginas}.\n");
    }
}
1 resposta
solução!

Oi, Philip! Como vai?

Chamou atenção o uso correto de virtual e override para permitir o polimorfismo entre os tipos de conteúdo. A separação entre AulaGravada e MaterialComplementar, herdando de Conteudo, deixa o modelo claro e facilita a extensão da plataforma com novos formatos no futuro.

Uma dica interessante para o futuro é usar uma lista do tipo base para executar o polimorfismo, na prática, chamando o mesmo método para objetos diferentes. Veja este exemplo:


List<Conteudo> conteudos = new List<Conteudo>();
conteudos.Add(new AulaGravada("POO em C#", 30));
conteudos.Add(new MaterialComplementar("Guia de Estudos", 12));

foreach (Conteudo item in conteudos)
{
    item.ExibirInfo();
}

Esse código percorre uma lista de Conteudo e executa ExibirInfo, deixando o .NET decidir qual implementação usar em tempo de execução.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abracos e bons estudos!