Hola Adrián:
Analizando las correcciones que realizaste noto que has reagrupado los atributos comunes en las clases padres, eso lo veo bien.
Lo que no veo bien es que eliminaste la clase intermedia ProductoRefrigeradoOCongelado que era un gran acierto. Te había indicado:
De esta manera el esquema que definiste se mantedría igual, solamente cambiarían los campos que cada clase declara.
Fíjate que en el post anterior también te había sugerido que la clase ProductoRefrigeradoOCongelado declarara un solo campo de instancia: temperatura de mantenimiento recomendada (atributo común tanto a los productos congelados como a los productos refrigerados).
Respecto de la nueva clase ProductoFresco: sería aún más corta de lo que codificaste ¿por qué? porque debido a la herencia no hace falta volver a declarar los métodos que hereda de la clase Producto. Recuerda que ProductoFresco heredará todos los campos de instancia y los métodos de la clase padre Producto.
Los objetos tipo ProductoFresco unicamente necesitarán los campos y métodos heredados.
Por tanto esta nueva clase será:
package CU00688B;
import java.util.Calendar;
public class ProductoFresco extends Producto {
public ProductoFresco (int numeroLote, Calendar fechaCaducidad,
Calendar fechaEnvase, String paisOrigen) {
super(numeroLote, fechaCaducidad, fechaEnvase, paisOrigen);
}
}
Respecto de la clase ProdCongPorAire: definiste bien los métodos set para cada campo de instancia, pero no veo bien el método getComposicion(). Dejaría la salida por consola solo en el método mostrarProducto().
Definiría un método get para cada campo de instancia, de la misma manera que lo hiciste con los métodos set.
Muy bien la clase EnvioDeProductos a la que hemos dedicado un párrafo anteriormente, y muy bien tambien las restantes clases.
Saludos.