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

[Resolução] Faça como eu fiz: reservas de experiências

Reserva.cs

internal abstract class Reserva(string titulo)
{
    internal string Titulo { get; } = titulo;
    internal virtual void Confirmar()
        => Console.WriteLine("Confirmando reserva: " + Titulo);
}

ReservaPresencial.cs

internal class ReservaPresencial(string titulo, string pontoDeEncontro) : Reserva(titulo)
{
    public string PontoDeEncontro { get; private set; } = pontoDeEncontro;
    internal override void Confirmar()
    {
        Console.WriteLine($"Confirmando reserva presencial: {Titulo}");
        Console.WriteLine($"Ponto de encontro: {PontoDeEncontro}");
    }
}

ReservaOnline.cs

internal class ReservaOnline(string descricao, string detalhes) : Reserva(descricao)
{
    public string Detalhes { get; } = detalhes;
    internal override void Confirmar()
    {
        Console.WriteLine($"Confirmando reserva online: {Titulo}");
        Console.WriteLine(Detalhes);
    }
}

Program.cs

List<Reserva> reservas =
[
    new ReservaPresencial("Trilha na Serra", "Praça Central, às 8h"),
    new ReservaOnline("Workshop de Culinária Italiana", "Link de acesso enviado por e-mail!")
];

foreach (var reserva in reservas)
    reserva.Confirmar();
1 resposta
solução!

Olá, Gerson! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de classes abstratas para definir contratos em C#, criou muito bem as especializações para reservas presenciais e online e ainda compreendeu a importância da sobrescrita de métodos para personalizar o comportamento de cada tipo de reserva.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Sugestão de conteúdo para você mergulhar ainda mais no tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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