namespace Teste4_Alura.ExercicioOO;
internal class Bicicleta : Transporte
{
public override int CalcularTempo(int distanciaKm)
{
return base.CalcularTempo(distanciaKm * 4);
}
}
namespace Teste4_Alura.ExercicioOO;
internal class Metro : Transporte
{
public override int CalcularTempo(int distanciaKm)
{
return base.CalcularTempo(distanciaKm + 5);
}
}
namespace Teste4_Alura.ExercicioOO;
internal class Onibus : Transporte
{
public int distancia { get; set; }
public override int CalcularTempo(int distanciaKm)
{
return base.CalcularTempo(distanciaKm *2) + 5;
}
}
namespace Teste4_Alura.ExercicioOO;
internal class Transporte
{
public virtual int CalcularTempo(int distanciaKm)
{
return distanciaKm;
}
}
#region Simulador de transporte Urbano
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");
}
#endregion