1
resposta

[Projeto] Simulador de transporte urbano

Trasporte.cs

public class Transporte
{
    public virtual int CalcularTempo(int distanciaKm)
    {
        return distanciaKm * 5;
    }
}

Onibus.cs

public class Onibus : Transporte
{
    public override int CalcularTempo(int distanciaKm)
    {
        return (distanciaKm * 2) + 5;
    }
}

Metro.cs

public class Metro : Transporte
{
    public override int CalcularTempo(int distanciaKm)
    {
        return distanciaKm + 5;
    }
}

Bicicleta.cs

public class Bicicleta : Transporte
{
    public override int CalcularTempo(int distanciaKm)
    {
        return distanciaKm * 4;
    }
}

Program.cs

List<Transporte> opcoes = new List<Transporte>
{
    new Onibus(),
    new Metro(),
    new Bicicleta()
};

int distancia = 10;

foreach (var transporte in opcoes)
{
    Console.WriteLine($"{transporte.GetType().Name}: {transporte.CalcularTempo(distancia)} min");
}
1 resposta

Olá, Matheus, como vai?

O código apresentado segue corretamente os princípios de orientação a objetos propostos na atividade. A aplicação do polimorfismo de subtipos foi implementada de forma adequada, permitindo que cada classe derivada sobrescreva o comportamento do método base para atender às regras específicas de cálculo de cada meio de transporte.

A lógica de repetição para percorrer a lista de objetos e exibir os resultados também está funcional e atende ao que foi solicitado no exercício. É gratificante ver a organização das classes em arquivos separados, o que demonstra uma boa prática de desenvolvimento.

Parabéns pelo empenho no desenvolvimento do simulador e continue compartilhando seus progressos com a comunidade.

O fórum está à disposição para futuras dúvidas ou trocas de conhecimento.

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