Pessoa.cs
namespace E03DadosDePassageiros.Models;
//Tornei a classe abstrata supondo que só serão criados tipos especializados
internal abstract class Pessoa(string nome, int idade)
{
public string Nome { get; } = nome;
public int Idade { get; } = idade;
}
Passageiro.cs
namespace E03DadosDePassageiros.Models;
internal class Passageiro(string nome, int idade, int quantidadeBilhetes) : Pessoa(nome, idade)
{
public int QuantidadeDeBilhetes { get; private set; } = quantidadeBilhetes;
public void AdicionarBilhetes(int quantidade)
{
if (quantidade <= 0)
{
Console.WriteLine("Erro: A quantidade deve ser positiva.");
return;
}
QuantidadeDeBilhetes += quantidade;
}
public void RemoverBilhetes(int quantidade)
{
if (quantidade <= 0)
{
Console.WriteLine("Erro: A quantidade de remoção deve ser positiva.");
return;
}
if (quantidade > QuantidadeDeBilhetes)
{
Console.WriteLine("Erro: Saldo insuficiente. Tens apenas " + QuantidadeDeBilhetes + " bilhetes.");
return;
}
QuantidadeDeBilhetes -= quantidade;
}
public override string ToString()
=> $"Passageiro: {Nome} - Idade: {Idade} - Bilhetes: {QuantidadeDeBilhetes}";
}
Program.cs
namespace E03DadosDePassageiros.Models;
internal class Passageiro(string nome, int idade, int quantidadeBilhetes) : Pessoa(nome, idade)
{
public int QuantidadeDeBilhetes { get; private set; } = quantidadeBilhetes;
public void AdicionarBilhetes(int quantidade)
=> QuantidadeDeBilhetes += quantidade;
public void RemoverBilhetes(int quantidade)
=> QuantidadeDeBilhetes -= quantidade;
public override string ToString()
=> $"Passageiro: {Nome} - Idade: {Idade} - Bilhetes: {QuantidadeDeBilhetes}";
}