Hola
Aquí dejo la resolución al ejercicio CU00686B del curso básico de codificación con Java y IDE BlueJ, de herencia.
Clase de test
package test;
import aplicacion.*;
/**
* Clase encargada de realizar un test de la aplicación
* @author David
*
*/
public class TestHerencia2 {
public static void main(String[] args) {
Producto producto = new Producto("23/07/2016",22);
System.out.println("Prueba de lo que contiene el objeto de la clase Producto: "+producto.toString());
ProductoFresco pf1 = new ProductoFresco("23/07/2016", "España", "12/12/2017", 40);
System.out.println("Prueba de lo que contiene el objeto de la clase ProductoFresco: "+pf1.toString());
ProductoRefrigerado pr1 = new ProductoRefrigerado(50, "23/04/2020", 804);
System.out.println("Prueba de lo que contiene el objeto de la clase ProductoRefrigerado: "+pr1.toString());
ProductoCongelado pc1 = new ProductoCongelado("24/05/2025", 45, -30);
System.out.println("Prueba de lo que contiene el objeto de la clase ProductoCongelado: "+pc1.toString());
}
}
Superclase Producto
package aplicacion;
/**
* Superclase Producto
* @author David
*
*/
public class Producto {
private String fechaCaducidad;
private int numeroLote;
//Constructor
public Producto(){
}
//Constructor sobrecargado
public Producto(String fechaCaducidad, int numeroLote){
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
}
//Getters and Setters
public String getFechaCaducidad(){
return fechaCaducidad;
}
public void setFechaCaducidad(String valorFechaCaducidad){
fechaCaducidad = valorFechaCaducidad;
}
public int getNumeroLote(){
return numeroLote;
}
public void setNumeroLote(int valorNumeroLote){
numeroLote = valorNumeroLote;
}
//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha de caducidad "+fechaCaducidad+" //Numero de lote: "+numeroLote;
}
}
Y estas son las subclases
ProductoFresco
package aplicacion;
/**
* Subclase ProductoFresco que extiende de la clase Producto
* @author David
*
*/
public class ProductoFresco extends Producto{
private String fechaEnvasado;
private String paisOrigen;
//Constructor sobrecargado
public ProductoFresco(String fechaEnvasado, String paisOrigen,String fechaCaducidad, int numeroLote){
super(fechaCaducidad, numeroLote);
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
}
//Getters and Setters
public String getFechaEnvasado(){
return fechaEnvasado;
}
public void setFechaEnvasado(String valorFechaEnvasado){
fechaEnvasado = valorFechaEnvasado;
}
public String getPaisOrigen() {
return paisOrigen;
}
public void setPaisOrigen(String valorPaisOrigen) {
paisOrigen = valorPaisOrigen;
}
//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha caducidad: "+getFechaCaducidad()+" //Numero de lote: "+getNumeroLote()+" //Fecha envasado: "+fechaEnvasado+" //Pais de origen: "+paisOrigen;
}
}
ProductoRefrigerado
package aplicacion;
public class ProductoRefrigerado extends Producto{
private int codigoOrganismo;
//Constructor sobrecargado
public ProductoRefrigerado(int codigoOrganismo, String fechaCaducidad, int numeroLote){
super(fechaCaducidad, numeroLote);
this.codigoOrganismo = codigoOrganismo;
}
//Getters and Setters
public int getCodigoOrganismo() {
return codigoOrganismo;
}
public void setCodigoOrganismo(int valorCodigoOrganismo) {
codigoOrganismo = valorCodigoOrganismo;
}
//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha caducidad: "+getFechaCaducidad()+" //Numero de lote: "+getNumeroLote()+" //Código de organismo: "+codigoOrganismo;
}
}
ProductoCongelado
package aplicacion;
public class ProductoCongelado extends Producto {
private double temperaturaCongelacion;
//Constructor sobrecargado
public ProductoCongelado(String fechaCaducidad, int numeroLote, double temperaturaCongelacion) {
super(fechaCaducidad, numeroLote);
this.temperaturaCongelacion = temperaturaCongelacion;
}
//Getters and Setters
public double getTemperaturaCongelacion() {
return temperaturaCongelacion;
}
public void setTemperaturaCongelacion(double valorTemperaturaCongelacion) {
temperaturaCongelacion = valorTemperaturaCongelacion;
}
//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha caducidad: "+getFechaCaducidad()+" //Numero de lote: "+getNumeroLote()+" //Temperatura de congelación: "+temperaturaCongelacion;
}
}
Ejecución del programa
Prueba de lo que contiene el objeto de la clase Producto: Fecha de caducidad 23/07/2016 //Numero de lote: 22
Prueba de lo que contiene el objeto de la clase ProductoFresco: Fecha caducidad: 12/12/2017 //Numero de lote: 40 //Fecha envasado: 23/07/2016 //Pais de origen: España
Prueba de lo que contiene el objeto de la clase ProductoRefrigerado: Fecha caducidad: 23/04/2020 //Numero de lote: 804 //Código de organismo: 50
Prueba de lo que contiene el objeto de la clase ProductoCongelado: Fecha caducidad: 24/05/2025 //Numero de lote: 45 //Temperatura de congelación: -30.0
Saludos