Buenos días compañeros,
El enunciado del curso "aprendiendo programación desde cero" CU00686B Ejemplo de Herencia dice así:
Se plantea desarrollar un programa Java que permita la gestión de una empresa agroalimentaria que trabaja con tres tipos de productos: productos frescos, productos refrigerados y productos congelados.
Todos los productos llevan esta información común: fecha de caducidad y número de lote. A su vez, cada tipo de producto lleva alguna información específica.
-Los productos frescos deben llevar la fecha de envasado y el país de origen.
-Los productos refrigerados deben llevar el código del organismo de supervisión alimentaria.
-Los productos congelados deben llevar la temperatura de congelación recomendada.
Crear el código de las clases Java implementando una relación de herencia desde la
superclase Producto hasta las subclases ProductoFresco, ProductoRefrigerado y ProductoCongelado.
Cada clase debe disponer de constructor y permitir establecer (set) y recuperar (get) el valor de sus atributos y tener un método que permita mostrar la información del objeto.
Crear una clase testHerencia2 con el método main donde se cree un objeto de cada tipo y se muestren los datos de cada uno de los objetos creados.
Archivo Productos
package Herencia;
public class Productos {
//Variables
private String nombre;
private String numeroLote;
private String fechaCaducidad;
//CONSTRUCTOR
public Productos(String nombre, String fechaCaducidad, String numeroLote) {
this.nombre = nombre;
this.numeroLote = numeroLote;
this.fechaCaducidad = fechaCaducidad;
}
//Método setter de las 3 variables
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setNumeroLote(String numeroLote) {
this.numeroLote = numeroLote;
}
public void setFechaCaducidad(String fechaCaducidad) {
this.fechaCaducidad = fechaCaducidad;
}
//Método Getter de las 3 variables
public String getNombre() {return nombre;}
public String getNumeroLote() {return numeroLote;}
public String getFechaCaducidad() {return fechaCaducidad;}
}
ProductoFresco
package Herencia;
public class ProductoFresco extends Productos {
//Variable
private String fechaEnvasado;
private String paisOrigen;
//CONSTRUCTOR
public ProductoFresco(String nombre, String numeroLote, String fechaCaducidad, String fechaEnvasado, String paisOrigen) {
super(nombre, fechaCaducidad, numeroLote);
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
}
//Métodos Setter
public void setFechaEnvasado(String fechaEnvasado) {
this.fechaEnvasado = fechaEnvasado;
}
public void setPaisOrigen(String paisOrigen) {
this.paisOrigen = paisOrigen;
}
//Métodos Getter
public String getFechaEnvasado() {return fechaEnvasado;}
public String getPaisOrigen() {return paisOrigen;}
//Imprimir resultados
public void imprimirProductoFresco() {
System.out.println("El nombre del producto es: " + getNombre() + " con numero de lote " + getNumeroLote() + " fecha de caducidad " + getFechaCaducidad() + " y fecha de envasado " + getFechaEnvasado() + " con pais de origen " + getPaisOrigen());
}
}
ProductoRefrigerado
package Herencia;
public class ProductoRefrigerado extends Productos {
//variable
private String codigoSupervision;
//CONSTRUCTOR CON PARÁMETROS
public ProductoRefrigerado(String nombre, String fechaCaducidad, String numeroLote, String codigoSupervision) {
super(nombre, fechaCaducidad, numeroLote);
this.codigoSupervision = codigoSupervision;
}
//Método Setter
public void setCodigoSupervision(String codigoSupervision) {
this.codigoSupervision = codigoSupervision;
}
//Métod Getter
public String getCodigoSupervision() {return codigoSupervision;}
//Imprimir resultado
public void ImprimirProductoRefrigerado() {
System.out.println("El nombre del producto es: " + getNombre() + " con numero de lote " + getNumeroLote() + " fecha de caducidad " + getFechaCaducidad() + " con código de Supervisión " + getCodigoSupervision());
}
}
ProductoCongelado
package Herencia;
public class ProductoCongelado extends Productos {
// Variable
private String temperaturaCongelacion;
//CONSTRUCTOR
public ProductoCongelado(String nombre, String fechaCaducidad, String numeroLote, String temperaturaCongelacion) {
super(nombre, fechaCaducidad, numeroLote);
this.temperaturaCongelacion = temperaturaCongelacion;
}
//Método Setter
public void setTemperaturaCongelacion(String temperaturaCongelacion) {
this.temperaturaCongelacion = temperaturaCongelacion;
}
//Método Getter
public String getTemperaturaCongelacion() {return temperaturaCongelacion;}
//Imprimir resultados
public void ImprimirProductoCongelacion() {
System.out.println("El nombre del producto es: " + getNombre() + " con numero de lote " + getNumeroLote() + " fecha de caducidad " + getFechaCaducidad() + " con temperatura de congelación " + getTemperaturaCongelacion());
}
}
testHerencia2
package Herencia;
public class testHerencia2 {
public static void main(String[] args) {
ProductoFresco productoFresco = new ProductoFresco(" Pescado ", " 1650 " , " 30/12/2017 ", " 20/08/2017 " , " España ");
ProductoRefrigerado productoRefrigerado = new ProductoRefrigerado(" Pollo " , " 1651 " , " 20/11/2017 " , " A1654 ");
ProductoCongelado productoCongelado = new ProductoCongelado(" Atun " , " 1652 " , " 20/02/2020 " , "-15º");
productoFresco.imprimirProductoFresco();
productoRefrigerado.ImprimirProductoRefrigerado();
productoCongelado.ImprimirProductoCongelacion();
}
}