Ejercicio resuelto ejemplo de herencia simple, extends y super en Java. Constructores con herencia. (Ejercicio CU00687B del tutorial)
CLASE PRODUCTOS
package aprender;
public class Productos {
private String fechaCaducidad;
private int numLote;
private String fechaEnvasado;
private String paisOrigen;
private int trec;
public Productos(String fechaCaducidad, int numLote, String fechaEnvasado, String paisOrigen){
this.fechaCaducidad=fechaCaducidad;
this.numLote=numLote;
this.fechaEnvasado=fechaEnvasado;
this.paisOrigen=paisOrigen;
}
public Productos(String fechaCaducidad, int numLote, String fechaEnvasado, String paisOrigen,int trec){
this.fechaCaducidad=fechaCaducidad;
this.numLote=numLote;
this.fechaEnvasado=fechaEnvasado;
this.paisOrigen=paisOrigen;
this.trec=trec;
}
public String getFechaCaducidad(){
return fechaCaducidad;
}
public int getNumLote(){
return numLote;
}
public String getFechaEnvasado(){
return fechaEnvasado;
}
public String getPaisOrigen(){
return paisOrigen;
}
public int getTemperaturaRecomendada(){
return trec;
}
}
CLASE PRODUCTOS FRESCOS
package aprender;
public class ProductosFrescos extends Productos {
public ProductosFrescos(String fechaCaducidad, int numLote, String fechaEnvasado, String paisOrigen){
super(fechaCaducidad, numLote, fechaEnvasado, paisOrigen);
}
public void mostrar1(){
System.out.println("Producto fresco con numero de lote: "+getNumLote()+"\nFecha de envasado: "+getFechaEnvasado()+"\nFecha de caducidad: "+getFechaCaducidad()+"\nPais de origen: "+getPaisOrigen());
}
}
CLASE PRODUCTOS REFRIGERADOS
package aprender;
public class ProductoRefrigerado extends Productos{
private String codigoAlimentario;
public ProductoRefrigerado(String fechaCaducidad, int numLote, String fechaEnvasado, String paisOrigen,int trec){
super(fechaCaducidad, numLote, fechaEnvasado, paisOrigen, trec);
codigoAlimentario = "";
}
public void setCodigoAlim(String codigoAlimentario){
this.codigoAlimentario = codigoAlimentario;
}
public String getCodigoAlim(){return codigoAlimentario;}
public void mostrar2(){
System.out.println("Producto refrigerado con codigo alimentario: "+getCodigoAlim()+"\nNumero de lote: "+getNumLote()+"\nFecha de caducidad: "+getFechaCaducidad()+"\nFecha de Envasado: "+getFechaEnvasado()+"\nPais de origen: "+getPaisOrigen()+"\nTemperatura de mantenimiento recomendada: "+getTemperaturaRecomendada());
}
}
CLASE PRODUCTOS CONGELADOS
package aprender;
public class ProductosCongelados extends Productos{
public ProductosCongelados(String fechaCaducidad, int numLote, String fechaEnvasado, String paisOrigen, int trec){
super (fechaCaducidad, numLote, fechaEnvasado, paisOrigen,trec);
}
public void mostrar3(){
System.out.println("Producto congelado con temperatura recomendada: "+getTemperaturaRecomendada()+"\nNumero de lote: "+getNumLote()+"\nFecha de caducidad: "+getFechaCaducidad()+"\nFecha de envasado: "+getFechaEnvasado()+"\nPais de origen: "+getPaisOrigen());
}
}
CLASE CONGELADOS POR AIRE
package aprender;
public class CongeladosPorAire extends ProductosCongelados {
private int nitrogeno, oxigeno, co2, vapor;
public CongeladosPorAire(String fechaCaducidad, int numLote, String fechaEnvasado, String paisOrigen,int trec){
super(fechaCaducidad,numLote,fechaEnvasado,paisOrigen,trec);
nitrogeno=0;oxigeno=0;co2=0;vapor=0;
}
public void setComposicionAire(int nitrogeno, int oxigeno, int co2, int vapor){
this.nitrogeno=nitrogeno;this.oxigeno=oxigeno;this.co2=co2;this.vapor=vapor;
}
public int getNitrogeno(){return nitrogeno;}
public int getOxigeno(){return oxigeno;}
public int getCo2(){return co2;}
public int getVapor(){return vapor;}
public void mostrar5(){
System.out.println("Composicion del aire formada por: \nNitrogeno= "+getNitrogeno()+" %"+"\nOxigeno= "+getOxigeno()+" %"+"\nDioxido de carbono= "+getCo2()+" %"+"\nVapor de agua= "+getVapor()+" %");
}
}
CLASE CONGELADOS POR AGUA
package aprender;
public class CongeladosPorAgua extends ProductosCongelados {
private int salinidadAgua; //gramos de sal por litro de agua
public CongeladosPorAgua(String fechaCaducidad, int numLote, String fechaEnvasado, String paisOrigen,int trec){
super(fechaCaducidad,numLote,fechaEnvasado,paisOrigen,trec);
salinidadAgua=0;
}
public void setSalinidadAgua(int salinidadAgua){
this.salinidadAgua=salinidadAgua;
}
public int getSalinidadAgua(){return salinidadAgua;}
public void mostrar6(){
System.out.println("Producto congelado por agua con temperatura recomendada: "+getTemperaturaRecomendada()+"\nNumero de lote: "+getNumLote()+"\nFecha de caducidad: "+getFechaCaducidad()+"\nFecha de envasado: "+getFechaEnvasado()+"\nPais de origen: "+getPaisOrigen()+"\nSalinidad del agua: "+getSalinidadAgua()+" g/litro");
}
}
CLASE CONGELADOS POR NITROGENO
package aprender;
public class CongeladosPorNitrogeno extends ProductosCongelados {
private String metodoCongelacion;
private int tiempoExposicion; //segundos
public CongeladosPorNitrogeno(String fechaCaducidad, int numLote, String fechaEnvasado, String paisOrigen,int trec){
super(fechaCaducidad,numLote,fechaEnvasado,paisOrigen,trec);
metodoCongelacion="";
tiempoExposicion = 0;
}
public void setMetodoCongelacion(String metodoCongelacion){
this.metodoCongelacion=metodoCongelacion;
}
public void setTiempoExposicion(int tiempoExposicion){
this.tiempoExposicion=tiempoExposicion;
}
public String getMetodoCongelacion(){return metodoCongelacion;}
public int getTiempoExposicion(){return tiempoExposicion;}
public void mostrar4(){
System.out.println("Producto congelado por nitrogeno con temperatura recomendada: "+getTemperaturaRecomendada()+"\nNumero de lote: "+getNumLote()+"\nFecha de caducidad: "+getFechaCaducidad()+"\nFecha de envasado: "+getFechaEnvasado()+"\nPais de origen: "+getPaisOrigen()+"\nMetodo de congelacion: "+getMetodoCongelacion()+"\nTiempo de exposicion al nitrógeno: "+getTiempoExposicion()+" segundos");
}
}
CLASE TEST HERENCIA
package aprender;
public class TestHerencia {
public static void main (String [] args){
ProductosFrescos pf = new ProductosFrescos("24/11/15", 12,"05/08/2015","España");
ProductosFrescos pf1 = new ProductosFrescos("27/11/15", 11,"05/08/2015","Italia");
ProductoRefrigerado pr = new ProductoRefrigerado("12/04/16",14,"05/08/2015","España",12);
ProductoRefrigerado pr1 = new ProductoRefrigerado("12/04/16",14,"05/08/2015","España",12);
ProductoRefrigerado pr2 = new ProductoRefrigerado("12/04/16",14,"05/08/2015","España",12);
CongeladosPorAire cpa = new CongeladosPorAire("23/11/15", 15, "05/08/2015","España",5);
CongeladosPorAire cpa1 = new CongeladosPorAire("23/11/15", 15, "05/08/2015","España",5);
CongeladosPorAgua cpag= new CongeladosPorAgua("23/11/15", 15, "05/08/2015","España",5);
CongeladosPorAgua cpag1= new CongeladosPorAgua("23/11/15", 15, "05/08/2015","España",5);
CongeladosPorNitrogeno cpn= new CongeladosPorNitrogeno("23/11/15", 15, "05/08/2015","España",5);
pr.setCodigoAlim("pr23433");pr1.setCodigoAlim("pr23433");pr2.setCodigoAlim("pr23433");
cpa.setComposicionAire(12, 10, 54, 24);cpa1.setComposicionAire(12, 10, 54, 24);
cpag.setSalinidadAgua(23);cpag1.setSalinidadAgua(21);
cpn.setMetodoCongelacion("hielo");cpn.setTiempoExposicion(53);
pf.mostrar1();pf1.mostrar1();
pr.mostrar2();pr1.mostrar2();pr2.mostrar2();
cpa.mostrar3();cpa.mostrar5();cpa1.mostrar3();cpa1.mostrar5();
cpag.mostrar6();cpag1.mostrar6();
cpn.mostrar4();
}
}