1
resposta

[Projeto] MInha resolução

namespace Teste4_Alura.ExercicioOO;

internal class ReservaOnline : Reserva2
{
    public string Nome { get; set; }
    public ReservaOnline(string nome)
    {
        Nome = nome;
    }

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

            Confirmado reserva online: {Nome}
            Link de acesso enviado por e-mail!
            """");
    }

}
namespace Teste4_Alura.ExercicioOO;

internal class ReservaPresencial : Reserva2
{
    public string Nome {  get; set; }
    public ReservaPresencial(string nome)
    {
        Nome = nome;
    }


    public override void Confirmar()
    {
        Console.WriteLine($""""
            Confirmado reserva Presencial: {Nome}
            Ponto de encontro: Praca Central, as 8h
            """");

    }


}
namespace Teste4_Alura.ExercicioOO;

internal class Reserva2
{

    public virtual void Confirmar()
    {

    }
}
#region Reserva de Experiencias
using Teste4_Alura.ExercicioOO;

List<Reserva2> reservas = new List<Reserva2>
{
    new ReservaPresencial("Trillha na Serra"),
    new ReservaOnline("Workshop de Culinária Italiana")

};

foreach (var reserva in reservas)
{
    reserva.Confirmar();
}

#endregion
1 resposta

Olá, Ulysses, como vai?

Sua solução demonstra bem o uso de polimorfismo de subtipos, com a chamada de Confirmar sendo resolvida corretamente em tempo de execução a partir da lista de reservas. A ideia central do exercício foi aplicada e o foreach funciona exatamente como esperado nesse cenário.

Parabéns por compartilhar sua resolução. Continue trazendo suas soluções para o fórum, ele está sempre à disposição para troca de ideias e aprimoramento.

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