using System.Collections.Generic;
public interface IVehiculo
public class Carro : IVehiculo
public Carro(string placa) { _Placa = placa; }
public string ObtenerPlaca() { return this._Placa; }
public class Motor : IVehiculo
public Motor(string placa, string modelo) { _Placa = placa; _Modelo = modelo; }
public string ObtenerPlaca() { return this._Placa; }
public string ObtenerModelo() { return this._Modelo; }
public static List<IVehiculo> Vehiculos = new List<IVehiculo>()
new Motor("321-32-321", "Alguna marca"),
new Motor("22-223-210", "Otra marca"),
public static IVehiculo ObtenerMotorPorPlaca(string placa)
foreach (IVehiculo vh in Vehiculos)
if (vh.ObtenerPlaca() == placa) return vh;
public static void Main()
IVehiculo MiVehiculo = new Motor("21132", "wwq");
Console.WriteLine("Placa del motor: " + MiVehiculo.ObtenerPlaca() + " Modelo: " + ((Motor)MiVehiculo).ObtenerModelo());
MiVehiculo = new Carro("23232");
Console.WriteLine("Placa del motor: " + MiVehiculo.ObtenerPlaca());
Console.WriteLine(MiVehiculo.GetType());
MiVehiculo = ObtenerMotorPorPlaca("321-32-321");
Console.WriteLine(MiVehiculo.GetType());
Console.WriteLine("Placa del vehiculo buscado: " + MiVehiculo.ObtenerPlaca());