Hola
Tu ejercicio cumple con lo que se pide en la entrega.
Tu estructura de la herencia es correcta, aunque observo que tienes una clase Producto que aumenta el tamaño de la estructura pero no aporta información discriminante.
Nuestra empresa agroalimentaria, si bien comercializa productos, siempre serán o bien productos frescos o congelados o de otro tipo, nunca productos (sin más).
A mi modo de ver los atributos de la clase Producto podrían incluirse en la clase PFresco sin desvirtuar la estructura de herencia actual.
Quiero observar que tu código es fácil de leer. Además le has añadido los comentarios para la documentación de la clase que enriquecen el valor del código.
Destaco también el uso de los métodos MostrarProductoXXX (valorBooleano) para decidir si se presenta cabecera de producto. Bien.
Por último, cito de tu mensaje
Solo comentar que no me he complicado con entradas por teclado o mantenimiento de BBDD pues entiendo no es el fin del ejercicio. Si lo es el entendimiento y manejo optimo de la herencia. Por ello me he centrado en intentar el mayor grado de abstracción para el ejercicio propuesto.
Como has decidido excluir cosas que no formaban parte del propósito del ejercicio (La herencia entre clases). Has tenido que contruir un main que, para presentar los datos de cada producto has tenido que escribir una línea para cada uno de ellos.
Si hubieras decidido poner dos productos más, bastaba con poner dos líneas más. Y con ventidos productos más, que... ¿ventidos líneas más?
Con esto te quiero decir que tu clase main (siendo operativa) no está a la altura del resto de las clases.
Tal como decías, has cumplido con lo que se pedía.
Me he quedado con las ganas de ver el edificio completo, no solo la fachada principal.
Saludos