using System.Collections.Generic;
public string Nome { get; set; }
public int Idade { get; set; }
public Pessoa(string nome, int idade)
public virtual void Apresentar()
Console.WriteLine($"Sou {Nome} e tenho {Idade} anos.");
public class Aluno : Pessoa
public string Curso { get; set; }
public Aluno(string nome, int idade, string curso) : base(nome, idade)
Console.WriteLine($"{Nome} está estudando.");
public override void Apresentar()
Console.WriteLine($"Sou {Nome}, tenho {Idade} anos e estou matriculado no curso de {Curso}.");
public class Professor : Pessoa
public string Disciplina { get; set; }
public Professor(string nome, int idade, string disciplina) : base(nome, idade)
public override void Apresentar()
Console.WriteLine($"Sou {Nome}, tenho {Idade} anos e ensino {Disciplina}.");
public static void Main()
Pessoa pessoa = new Pessoa("João", 40);
Aluno aluno = new Aluno("Maria", 20, "Engenharia");
Professor professor = new Professor("Carlos", 50, "Matemática");
List<Pessoa> pessoas = new List<Pessoa> { pessoa, aluno, professor };
Console.WriteLine("\nApresentando todas as pessoas:");
foreach (var p in pessoas)