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

Faça como eu fiz: reservas de experiências

Program.cs

using Turismo.Modelos;

Console.Clear();
List<Reserva> reservas = new List<Reserva> {
    new ReservaPresencial("Escalada Turística"),
    new ReservaOnline("IEEE Evento")
};

reservas.ForEach(r => r.Confirmar());

Reserva.cs

namespace Turismo.Modelos;
class Reserva {

    public string? Local;

    public Reserva(string? local) {
        Local = local;
    }

    public virtual void Confirmar() {
        Console.WriteLine("Confirmar reserva.");
    }
}

ReservaPresencial.cs

namespace Turismo.Modelos;
class ReservaPresencial : Reserva {

    public ReservaPresencial(string? local) : base(local){}
    
    public override void Confirmar() {
        Console.WriteLine($"Confirmando reserva presencial: {Local}");
    }
}

ReservaOnline.cs

namespace Turismo.Modelos;
class ReservaOnline : Reserva {

    public ReservaOnline(string? local) : base(local){}
    
    public override void Confirmar() {
        Console.WriteLine($"Confirmando reserva online: {Local}");
        Console.WriteLine("Link enviado por email.");
    }
}
1 resposta
solução!

Olá, Diego, como vai?

O seu código aplica corretamente os conceitos de herança e polimorfismo, utilizando a palavra-chave virtual na classe base e override nas classes derivadas para personalizar o comportamento do método de confirmação. A lógica de armazenamento em uma lista do tipo genérico e a iteração para execução dos métodos estão condizentes com o que foi solicitado na atividade.

Parabéns pela resolução do exercício e por compartilhar seu progresso.

Qualquer adicional, o fórum está a disposição.

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