Buenas,
En realidad estás devolviendo un objeto de la clase VehiculoDiesel, pero desde un referencia de la clase Vehiculo.
Tienes dos formas de solucionar tu problema.
1. Realizar una conversión
Código Java:
Ver originalpublic class LectorConCocheNuevo{
public static void main
(String[]args
){
LectorConCocheNuevo lector = new LectorConCocheNuevo();
Vehiculo miCocheNuevo = lector.comprarVehiculo();
//instanceof te devuelve verdadero si la referencia es de la clase VehiculoDiesel o una subclase de esta
if (miCocheNuevo instanceof VehiculoDiesel){
VehiculoDiesel cocheDiesel = (VehiculoDiesel)miCocheNuevo;
}
}
private Vehiculo comprarVehiculo(){
return new VehiculoDiesel();
}
}
2. Devolver VehiculoDiesel en el método
Código Java:
Ver originalpublic class LectorConCocheNuevo{
public static void main
(String[]args
){
LectorConCocheNuevo lector = new LectorConCocheNuevo();
VehiculoDiesel miCocheNuevo = lector.comprarVehiculo();
}
private VehiculoDiesel comprarVehiculo(){
return new VehiculoDiesel();
}
}
Un saludo y me comentas si te ha servido.