Hola, mis recomendaciones serían:
Crea un archivo .java para cada clase, no declares muchas clases dentro de un mismo archivo java.
Mejora la forma de nombrar las clases, te copio desde otro hilo:
<< Te recomendaría que empieces a acostumbrarte a pensar en cómo nombrar adecuadamente a las clases. El nombre normalmente debe ser descriptivo, en singular, y reflejar lo que representa o hace la clase. En el caso de que la clase represente algo de la vida real será "Rueda" o "Vehiculo", etc. En el caso de que represente algo no real podrá ser "Pensamiento" o "Duda" o "Reunion". Cuando las clases están destinadas más que a representar a realizar procesos, como es este caso, los nombres suelen ser del tipo -or, por ejemplo CombinadorInicialesPalabras, Exponenciador, ConstructorDeMultillaves, ExtractorDeAtributos, ReductorDeFlujo, etc. >>
No tienes coherencia en los nombres de clases. La clase Productos_Frescos hereda de la clase Empresa_Alimentaria. Esto significaría que un Producto fresco es un tipo e empresa alimentaria, cosa que no tiene sentido.
En la superclase Empresa_Agroalimentaria tienes los atributos fechaCaducidad y numLote. Pero el enunciado aunque no lo dice directamente si lo vemos bien nos dice que hay otros atributos comunes que deberían estar en la superclase (por ejemplo la fecha de envasado).
Tampoco estás haciendo un buen uso de la reutilización de código y aprovechamiento de la herencia, por ejemplo el método despliega() de la clase Congelados_Aire se repite en gran medida en la clase Congelados_Agua y en la clase Congelados_Nitrogeno sin hacer las partes comunes en la clase Productos_Congelados.
Como referencia para consultar la solución a este ejercicio puedes mirar
https://www.aprenderaprogramar.com/foros/index.php?topic=2342Para aplicar bien los conceptos te recomiendo seguir el curso desde el principio (
http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188)
Saludos