Conteudo.cs
internal abstract class Conteudo(string titulo)
{
internal string Titulo { get; } = titulo;
internal virtual void ExibirInfo()
=> Console.WriteLine("\nTítulo: " + Titulo);
}
AulaGravada.cs
internal class AulaGravada(string titulo, int duracao) : Conteudo(titulo)
{
internal int Duracao { get; } = duracao;
internal override void ExibirInfo()
{
base.ExibirInfo();
Console.WriteLine($"Duração: {Duracao} min");
}
}
MaterialComplementar.cs
internal class MaterialComplementar(string titulo, int numeroDePaginas) : Conteudo(titulo)
{
internal int NumeroDePaginas { get; } = numeroDePaginas;
internal override void ExibirInfo()
{
base.ExibirInfo();
Console.WriteLine("Páginas: " + NumeroDePaginas);
}
}
Program.cs
List<Conteudo> conteudos =
[
new AulaGravada("POO na prática", 45),
new MaterialComplementar("Resumo do módulo 2", 12)
];
foreach (var conteudo in conteudos)
conteudo.ExibirInfo();