Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Como crear un vector para almacenar clases

public class Vehiculo {
private String denominacion;
private String marca;
private int stock;
private float precio;
}

public class Automovil extends Vehiculo{

private int puertas;

}

public class Bicicleta extends Vehiculo{

private int cambios;
}

como hago para crear un vector para que me almacene las dos clases hijas y asi poder trabajar con los metodos que se encuentran dentro de las clases hijas, yo declare el array como clase vehiculo, pero de esa manera solamente me deja manejar los metodos que se encuentran dentro de la clase Vehiculo, espero me puedan ayudar

septiembre 25, 2012 | Unregistered CommenterNicolas

La manera de resolverlo ya te la indiqué en el otro hilo: hacer un typecast cuando quieres saber si se trata de una u otra clase heredada.
Ver hilo: http://www.javahispano.org/java-se/post/1961740

List<Vehiculo> vehiculos = new ArrayList<Vehiculo>();

Automovil auto = new Automovil();
auto.setDenominacion("auto");
auto.setPrecio(1000);
auto.setPuertas(4);
vehiculos.add(auto);

Bicicleta bici = new Bicicleta();
bici.setDenominacion("bici");
bici.setPrecio(500);
bici.setCambios(20);
vehiculos.add(bici);

for (Iterator<Vehiculo> it = vehiculos.iterator(); it.hasNext();) {
Vehiculo vehiculo = it.next();
System.out.println("denominación: " + vehiculo.getDenominacion());
System.out.println("precio= " + vehiculo.getPrecio());
if (vehiculo instanceof Automovil) {
System.out.println("puertas= " + ((Automovil) vehiculo).getPuertas());
}
if (vehiculo instanceof Bicicleta) {
System.out.println("cambios= " + ((Bicicleta) vehiculo).getCambios());
}
System.out.println("");
}

septiembre 25, 2012 | Registered Commenterchoces