Solución propuesta para el ejercicio CU00686B del tutorial de programación en lenguaje Java desde cero:
Clase principal main
package testherencia2;
public class TestHerencia2 {
public static void main(String[] args) {
ProductoFresco productoFresco = new ProductoFresco("20/09/2016", "000012345");
productoFresco.setFechaEnvasado("01/11/2015");
productoFresco.setPaisOrigen("Paraguay");
productoFresco.mostrarProductoFresco();
ProductoRefrigerado productoRefrigerado = new ProductoRefrigerado("30/12/2016", "00098878");
productoRefrigerado.setOrgSupAlimentaria("xz0083");
productoRefrigerado.mostrarProductoRefrigerado();
ProductoCongelado productoCongelado = new ProductoCongelado("10/10/2016", "00055443");
productoCongelado.setTemperaturaRecomendada("-4º");
productoCongelado.mostrarProductoCongelado();
}
}
Clase Producto
package testherencia2;
public class Producto {
private String fechaCaducidad;
private String numeroLote;
//public Producto() {
//}
public Producto(String fechaCaducidad, String numeroLote) {
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
}
public String getFechaCaducidad() {
return fechaCaducidad;
}
public void setFechaCaducidad(String fechaCaducidad) {
this.fechaCaducidad = fechaCaducidad;
}
public String getNumeroLote() {
return numeroLote;
}
public void setNumeroLote(String numeroLote) {
this.numeroLote = numeroLote;
}
}
Clase producto fresco
package testherencia2;
public class ProductoFresco extends Producto {
private String fechaEnvasado;
private String paisOrigen;
public ProductoFresco(String fechaCaducidad, String numeroLote) {
super(fechaCaducidad, numeroLote);
fechaEnvasado = "Unknown";
paisOrigen = "Unknown";
}
public String getFechaEnvasado() {
return fechaEnvasado;
}
public void setFechaEnvasado(String fechaEnvasado) {
this.fechaEnvasado = fechaEnvasado;
}
public String getPaisOrigen() {
return paisOrigen;
}
public void setPaisOrigen(String paisOrigen) {
this.paisOrigen = paisOrigen;
}
public void mostrarProductoFresco() {
System.out.println("Producto fresco de fecha de vencimiento " + getFechaCaducidad() + " con numero de lote " + getNumeroLote() + ""
+ " con fecha de envasado " + getFechaEnvasado() + " paìs de origen " + getPaisOrigen());
}
}
Clase producto refrigerado
package testherencia2;
public class ProductoRefrigerado extends Producto {
private String orgSupAlimentaria;
public ProductoRefrigerado(String fechaCaducidad, String numeroLote) {
super(fechaCaducidad, numeroLote);
orgSupAlimentaria = "Unknown";
}
public String getOrgSupAlimentaria() {
return orgSupAlimentaria;
}
public void setOrgSupAlimentaria(String orgSupAlimentaria) {
this.orgSupAlimentaria = orgSupAlimentaria;
}
public void mostrarProductoRefrigerado() {
System.out.println("Producto fresco de fecha de vencimiento " + getFechaCaducidad() + " con numero de lote " + getNumeroLote() + ""
+ " código del organismo de supervisión alimentaria " + getOrgSupAlimentaria());
}
}
Clase producto congelado
package testherencia2;
public class ProductoCongelado extends Producto {
private String temperaturaRecomendada;
public ProductoCongelado(String fechaCaducidad, String numeroLote) {
super(fechaCaducidad, numeroLote);
temperaturaRecomendada = "Unknown";
}
public String getTemperaturaRecomendada() {
return temperaturaRecomendada;
}
public void setTemperaturaRecomendada(String temperaturaRecomendada) {
this.temperaturaRecomendada = temperaturaRecomendada;
}
public void mostrarProductoCongelado() {
System.out.println("Producto fresco de fecha de vencimiento " + getFechaCaducidad() + " con numero de lote " + getNumeroLote() + ""
+ " temperatura de congelación recomendada " + getTemperaturaRecomendada());
}
}
Una pregunta que significa "Unknown" en un constructor.