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();
}