Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/09/2012, 11:25
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Problemilla... creación de objetos

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 original
  1. public class LectorConCocheNuevo{
  2. public static void main (String[]args){
  3.  
  4. LectorConCocheNuevo lector = new LectorConCocheNuevo();
  5.  
  6. Vehiculo miCocheNuevo = lector.comprarVehiculo();
  7.  
  8. //instanceof te devuelve verdadero si la referencia es de la clase VehiculoDiesel o una subclase de esta
  9. if (miCocheNuevo instanceof VehiculoDiesel){
  10. VehiculoDiesel cocheDiesel = (VehiculoDiesel)miCocheNuevo;
  11. }
  12.  
  13. }
  14.  
  15. private Vehiculo comprarVehiculo(){
  16. return new VehiculoDiesel();
  17. }
  18.  
  19. }

2. Devolver VehiculoDiesel en el método

Código Java:
Ver original
  1. public class LectorConCocheNuevo{
  2. public static void main (String[]args){
  3.  
  4. LectorConCocheNuevo lector = new LectorConCocheNuevo();
  5.  
  6. VehiculoDiesel miCocheNuevo = lector.comprarVehiculo();
  7.  
  8. }
  9.  
  10. private VehiculoDiesel comprarVehiculo(){
  11. return new VehiculoDiesel();
  12. }
  13.  
  14. }

Un saludo y me comentas si te ha servido.