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

Resposta: dados de passageiros

Classe 1:

public class Pessoa
{
    public string Nome { get; }
    public int Idade { get; }

    public Pessoa(string nome, int idade)
    {
        Nome = nome;
        Idade = idade;
    }
}

Classe 2:

public class Passageiro : Pessoa
{
    public int QuantidadeDeBilhetes { get; }

    public Passageiro(string nome, int idade, int quantidadeDeBilhetes) : base(nome, idade)
    {
        QuantidadeDeBilhetes = quantidadeDeBilhetes;
    }

    public void ExibirDados() =>
        Console.WriteLine($"Passageiro: {Nome} - Idade: {Idade} - Bilhetes: {QuantidadeDeBilhetes}");
}

Program:

Passageiro p2 = new Passageiro("Rodrigo", 30, 1);

p1.ExibirDados();
p2.ExibirDados();
1 resposta
solução!

Oii, Philip.

Fiquei muito feliz em ver que você aplicou as Propriedades ({ get; }) nas classes Pessoa e Passageiro. Viu como o código fica mais completo e seguro? Agora seus objetos estão protegidos contra alterações indesejadas.

Outro ponto que achei excelente: você usou o símbolo => (chamado de Expression-Bodied Member ou Arrow Expression) no método ExibirDados.

public void ExibirDados() => Console.WriteLine(...);

Isso deixa o código muito mais limpo para métodos de uma única linha. Parabéns por já estar explorando esses recursos do C#!

Apenas um detalhe de atenção no Program:
No seu trecho de teste, você chama p1.ExibirDados();, mas esqueceu de instanciar o p1 (criou apenas o p2).

// Faltou essa linha antes de chamar o método:
Passageiro p1 = new Passageiro("Lúcia", 45, 3);

Fora esse pequeno detalhe de desatenção no teste, a estrutura das classes está impecável.

Continue assim, você está pegando o jeito muito rápido! Abraços.

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