Clase ProductoCongeladoPorAgua
import java.util.Calendar;
/**
 * Write a description of class ProductoCongeladoPorAgua here.
 *
 * @author Luis
 * @version CU00687B
 */
public class ProductoCongeladoPorAgua extends ProductoCongelado {
    int salinidadAgua;
    public ProductoCongeladoPorAgua() {
        salinidadAgua=0;
    }
    public ProductoCongeladoPorAgua(String nomProd, int lote, String xPais, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento, int salinidadAgua ) {
       super(nomProd, lote, xPais, fechaEnvasado, fechaCaducidad, temperaturaMantenimiento);
        this.salinidadAgua=salinidadAgua;
    }
    /**
    * @param salinidadAgua Salinidad del agua  
    */
    public void setSalinidadAgua(int salinidadAgua){
       this.salinidadAgua=salinidadAgua;
    }
    /**
    * @return la salinidad del agua (int)
    */
    public int getSalinidadAgua(){
       return salinidadAgua;
    }
    public void listaProductoCongeladoPorAgua(){
        super.listaProductoCongelado();
        System.out.println("Salinidad del agua: "+salinidadAgua);
    }
}Clase ProductoCongeladoPorNitrogeno
import java.util.Calendar;
/**
 * Write a description of class ProductoCongeladoPorNitrogeno here.
 *
 * @author Luis
 * @version CU00687B
 */
public class ProductoCongeladoPorNitrogeno extends ProductoCongelado {
    int tiempoExposicion;
    String metodoEmpleado;
    public ProductoCongeladoPorNitrogeno() {
    tiempoExposicion=0;
    metodoEmpleado="";
    }
    public ProductoCongeladoPorNitrogeno(String nomProd, int lote, String xPais, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento, int tiempoExposicion, String metodoEmpleado) {
       super(nomProd, lote, xPais, fechaEnvasado, fechaCaducidad, temperaturaMantenimiento);
       this.tiempoExposicion=tiempoExposicion;
       this.metodoEmpleado=metodoEmpleado;               
    }
    /**
    * @param tiempoExposicion El tiempo de exposicion
    */
    public void setTiempoExposicion(int tiempoExposicion){
       this.tiempoExposicion=tiempoExposicion;
    }
    /**
    * @param metodoEmpleado El método usado para congelar por Nitrogeno
    */
    public void setMetodoEmpleado(String metodoEmpleado){
       this.metodoEmpleado=metodoEmpleado;
    }
   /**
    * @return El tiempo de exposición  (int)
    */
    public int getTiempoExposicion(){
       return tiempoExposicion;
    }
       /**
    * @return El metodo empleado  (String)
    */
    public String getMetodoEmpleado(){
       return metodoEmpleado;
    }
    public void listaProductoCongeladoPorNitrogeno(){
        super.listaProductoCongelado();
        System.out.println("Tiempo de exposición: "+tiempoExposicion);
        System.out.println("Método empleado: "+metodoEmpleado);
    }
}Clases enum
/**
 * Enumeration class TipoDeProducto - write a description of the enum class here
 *
 * @author (your name here)
 * @version (version number or date here)
 */
public enum TipoDeProducto
{
    FRESCO(7),REFRIGERADO(15),CONGELADO(90);
    private final int plazoDuracion;
    TipoDeProducto(int plazoDuracion){
        this.plazoDuracion=plazoDuracion;
    }
    public int getPlazoDuracion(){
        return plazoDuracion;
    }
}
/**
 * Enumeration class TipoDeCongelado - write a description of the enum class here
 *
 * @author (your name here)
 * @version (version number or date here)
 */
public enum TipoDeCongelado
{
    AGUA(-3.5), AIRE(-7.1), NITROGENO(-12.8);
    private final double temperaturaCongelado;
    TipoDeCongelado(double temperaturaCongelado){
        this.temperaturaCongelado=temperaturaCongelado;
    }
    public double getTemperaturaCongelado(){
    return temperaturaCongelado;
    }
}
Clase FechasProducto
import java.util.Calendar;
/**
 * Write a description of class Fecha here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class FechasProducto
{
    // instance variables - replace the example below with your own
    Calendar fechaEnvasado;
    Calendar fechaCaducidad;
    int dia;
    int mes;
    int anio;
    /**
     * Constructor for objects of class Fecha
     */
    public FechasProducto(){
    }
    public FechasProducto(Calendar fechaEnvasado, Calendar fechaCaducidad){
        this.fechaEnvasado=fechaEnvasado;
        this.fechaCaducidad=fechaCaducidad;
    }
    public void setFechaEnvasado(int dia, int mes, int anio){
        fechaEnvasado=Calendar.getInstance();
        fechaEnvasado.set(Calendar.DAY_OF_MONTH, dia);
        fechaEnvasado.set(Calendar.MONTH, mes-1);
        fechaEnvasado.set(Calendar.YEAR, anio); 
        fechaCaducidad=Calendar.getInstance();
        fechaCaducidad.set(Calendar.DAY_OF_MONTH, dia);
        fechaCaducidad.set(Calendar.MONTH, mes-1);
        fechaCaducidad.set(Calendar.YEAR, anio); }
    public String getStrFechaEnvasado(){    
        dia=fechaEnvasado.get(Calendar.DAY_OF_MONTH);
        mes=fechaEnvasado.get(Calendar.MONTH)+1;
        anio=fechaEnvasado.get(Calendar.YEAR);
        String strFechaEnvasado=dia+"/"+mes+"/"+anio;
        return strFechaEnvasado; 
    }
    public Calendar getFechaEnvasado(){
        return fechaEnvasado;}
    public Calendar getFechaCaducidad(){
        return fechaCaducidad;}
    public String getStrFechaCaducidad(){    
        dia=fechaCaducidad.get(Calendar.DAY_OF_MONTH);
        mes=fechaCaducidad.get(Calendar.MONTH)+1;
        anio=fechaCaducidad.get(Calendar.YEAR);
        String strFechaCaducidad=dia+"/"+mes+"/"+anio;
        return strFechaCaducidad; 
    }
}