Hola Mario,
Pongo el codigo de la clase TestHerencia3 solamente.
El resto está igual solo saqué las lineas de ArrayList,
import java.util.Calendar;
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
public class TestHerencia3 {
public static List<Producto> listaProductoFresco = new ArrayList<Producto>();
public static List<Producto> listaProductoRefrigerado = new ArrayList<Producto>();
public static List<Producto> listaProdCongPorAire = new ArrayList<Producto>();
public static List<Producto> listaProdCongPorAgua = new ArrayList<Producto>();
public static List<Producto> listaProdCongPorNitrogeno = new ArrayList<Producto>();
public static void main (String[] args) {
Calendar fechaEnvase = Calendar.getInstance();
Calendar fechaCaducidad = Calendar.getInstance();
fechaEnvase.set(2015,9,22);
fechaCaducidad.set(2016,9,22);
listaProductoFresco.add(new ProductoFresco (42, fechaCaducidad,
fechaEnvase, "Argentina"));
listaProductoFresco.add(new ProductoFresco (43, fechaCaducidad,
fechaEnvase, "Argentina"));
listaProductoRefrigerado.add(new ProductoRefrigerado (44, fechaCaducidad,
fechaEnvase, "Argentina", "4258CA"));
listaProductoRefrigerado.add(new ProductoRefrigerado (45, fechaCaducidad,
fechaEnvase, "Uruguay", "4258CB"));
listaProductoRefrigerado.add(new ProductoRefrigerado (46, fechaCaducidad,
fechaEnvase, "Uruguay", "4258KJ"));
listaProdCongPorAire.add(new ProdCongPorAire (47, fechaCaducidad,
fechaEnvase, "Argentina", "-5Cº", 25,25,10,40));
listaProdCongPorAire.add(new ProdCongPorAire (48, fechaCaducidad,
fechaEnvase, "Argentina", "-3Cº", 27,23,12,38));
listaProdCongPorAgua.add(new ProdCongPorAgua (49, fechaCaducidad,
fechaEnvase, "Chile", "5cº", 4));
listaProdCongPorAgua.add(new ProdCongPorAgua (50, fechaCaducidad,
fechaEnvase, "Perú", "4cº", 3));
listaProdCongPorNitrogeno.add(new ProdCongPorNitrogeno(51, fechaCaducidad,
fechaEnvase, "Bolivia", "3.4Cº", "Criogenico",20));
mostrarProductos();
}
public static void mostrarProductos() {
System.out.println("Productos Frescos:");
for(Producto tmp:listaProductoFresco){
tmp.mostrarProducto();
}
pause();
System.out.println("\nProductos Refrigerados:");
for(Producto tmp:listaProductoRefrigerado){
tmp.mostrarProducto();
}
pause();
System.out.println("\nProductos Congelado por Aire:");
for(Producto tmp:listaProdCongPorAire){
tmp.mostrarProducto();
}
pause();
System.out.println("\nProductos Congelado por Agua:");
for(Producto tmp:listaProdCongPorAgua){
tmp.mostrarProducto();
}
pause();
System.out.println("\nProductos Congelado por Nitrogeno:");
for(Producto tmp:listaProdCongPorNitrogeno){
tmp.mostrarProducto();
}
}
public static void pause(){
Scanner sc = new Scanner(System.in);
System.out.println("\nPresione una tecla para continuar..");
sc.nextLine();
}
}
Antes de finalizar tengo una consulta:
Pensé que un campo de clase era útil en estos casos para usarlo de la manera que lo hice en la segunda versión del código.
Ahora sabemos que eso es un error y me gustaría saber que uso se le puede dar a un campo estático o de clase?
Gracias,
Saludos!