Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Jorge lopez en 23 de Agosto 2014, 18:10
-
Uso de palabras clave extends y super. Constructores con herencia. Ejercicio CU00686B del curso de programación Java desde cero.
public class TestHerencia2 (clase con main)
package CU00686B;
public class TestHerencia2
{
public static void main(String []args)
{
ProdFresco prodFresco = new ProdFresco();//Creación de un objeto tipo ProdFresco mediante el constructor general de la clase ProdFresco.
ProdRefrigerado prodRefrigerado = new ProdRefrigerado();//Creación de un objeto tipo ProdRefrigerado mediante el constructor general de la clase ProdRefrigerado.
ProdCongelado prodCongelado = new ProdCongelado("10-18-2020", 201412152200L, -1.5F);/*Creación de un objeto tipo ProdCongelado mediante el constructor
con parámetros de la clase ProdCongelado*/
prodFresco.setFechaDeExpiracion("12-15-2015");
prodFresco.setNumDeLote(201412152200L);
prodFresco.setFechaDeEnvasado("12-15-2014");
prodFresco.setHechoEn("Republica Dominicana");
prodRefrigerado.setFechaDeExpiracion("10-15-2018");;
prodRefrigerado.setNumDeLote(201412152200L);
prodRefrigerado.setCodigoOSA("COSA-200018000");
System.out.println(" Producto fresco:");
prodFresco.verInfoProdFresco();
System.out.println("\n Producto refrigerado:");
prodRefrigerado.verInfoProdRefrigerado();
System.out.println("\n Producto congelado:");
prodCongelado.verInfoProdCongelado();
}
}
public class Producto
package CU00686B;
public class Producto
{
private String fechaDeExpiracion;
private long numDeLote;
//Constructor general
public Producto()
{
fechaDeExpiracion = "00-00-0000";
numDeLote = 0L;
}
//Constructor con parámetros
public Producto(String fDExp, long numLot)
{
fechaDeExpiracion = fDExp;
numDeLote = numLot;
}
//Setters
public void setFechaDeExpiracion(String fechaDeExpiracion)
{
this.fechaDeExpiracion = fechaDeExpiracion;
}
public void setNumDeLote(long numDeLote)
{
this.numDeLote = numDeLote;
}
//Getters
public String getFechaDeExpiracion()
{
return fechaDeExpiracion;
}
public long getNumDeLote()
{
return numDeLote;
}
//Otros métodos
public void verInfoProducto()
{
System.out.println("Fecha de expiracion: " + fechaDeExpiracion + "\nNumero de lote: " + numDeLote);
}
}
public class ProdFresco extends Producto
package CU00686B;
public class ProdFresco extends Producto
{
private String fechaDeEnvasado, hechoEn;
//Constructor general
public ProdFresco()
{
super();
fechaDeEnvasado = "00-00-0000";
hechoEn = "UnKnown";
}
//Constructor con parámetros
public ProdFresco(String fDExp, long numLot, String fDEnvas, String madeIn)
{
super(fDExp, numLot);
fechaDeEnvasado = fDEnvas;
hechoEn = madeIn;
}
//Setters
public void setFechaDeEnvasado(String fechaDeEnvasado)
{
this.fechaDeEnvasado = fechaDeEnvasado;
}
public void setHechoEn(String hechoEn)
{
this.hechoEn = hechoEn;
}
//Getters
public String getFechaDeEnvasado()
{
return fechaDeEnvasado;
}
public String getHechoEn()
{
return hechoEn;
}
//Otros metodos
public void verInfoProdFresco()
{
verInfoProducto();
System.out.println("Fecha de envasado: " + fechaDeEnvasado + "\nPais de origen: " + hechoEn);
}
}
public class ProdRefrigerado extends Producto
package CU00686B;
public class ProdRefrigerado extends Producto
{
private String codigoOSA;
//Constructor general
public ProdRefrigerado()
{
super();
codigoOSA = "COSA-0000";
}
//Constructor con parámetros
public ProdRefrigerado(String fDExp, long numLot, String cOSA)
{
super(fDExp, numLot);
codigoOSA = cOSA;
}
//setters
public void setCodigoOSA(String codigoOSA)
{
this.codigoOSA = codigoOSA;
}
//Getters
public String getCodigoOSA()
{
return codigoOSA;
}
//Otros métodos
public void verInfoProdRefrigerado()
{
verInfoProducto();
System.out.println("Codigo del organismo de supervision Alimentaria: " + codigoOSA);
}
}
public class ProdCongelado extends Producto
package CU00686B;
public class ProdCongelado extends Producto
{
private float tempDeCongRecomend;
//Constructor general
public ProdCongelado()
{
super();
tempDeCongRecomend = 0.0F;
}
//Constructor con parametros
public ProdCongelado(String fDExp, long numLot, float tDCR)
{
super(fDExp, numLot);
tempDeCongRecomend = tDCR;
}
//Setters
public void setTempDeCongRecomend(float tempDeCongRecomend)
{
this.tempDeCongRecomend = tempDeCongRecomend;
}
//Getters
public float getTempDeCongRecomend()
{
return tempDeCongRecomend;
}
//Otros metodos
public void verInfoProdCongelado()
{
verInfoProducto();
System.out.println("Temperatura de congelacion recomendada: " + tempDeCongRecomend + " grados °C");
}
}
Nota: Indicaciones a seguir para el correcto funcionamiento del código.
1: Crear un package con nombre: CU00686B 2: Declarar las 5 anteriores clases dentro de dicho package y 3: ejecutar el método main de la clase TestHerencia2 :P
Saludos!
-
Hola sniper, he revisado tu código y está perfecto. Hay una cosa que sí merecería ser mejorada relacionada con los métodos para mostrar información, pero lo verás tú mismo cuando llegues a la entrega CU00690, donde se explica la sobreescritura de métodos. Enhorabuena!