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");
}