|
|||||||
|
|
|
|||||
|
|
|||||||
La herencia permite extender la funcionalidad de un objeto.
Por ejemplo , si diseñamos un objeto Persona , podemos extender la funcionalidad de este objeto para crear un objeto Deportista, que hereda las propiedades del objeto Persona y puede incluir características adicionales de un deportista.
La herencia permite la reutilización de código para el diseño de clases basadas en otras.
Mediante un ejemplo práctico , que consiste en diseñar un objeto PRODUCTO mediante el concepto de herencia, veremos algunos conceptos básicos del tema.
Construyendo la clase base
La clase base es la clase sobre la que se basa la herencia, por lo tanto contruiremos el primer objeto con las propiedades básicas de un PRODUCTO, como son el nombre, precio de costo y precio de venta.
A partir de este objeto , vamos a extender la funcionalidad mediante herencia.
Solo el nombre va a ser atributo público, obligando a implementar métodos que manejen la accesibilidad a los atributos privados.
class ProductoBasico
{
public String nombre;
private int precioCosto;
private int precioVenta;
public ProductoBasico(String nombre , int precioCosto , int precioVenta)
{
this.nombre = nombre;
this.precioCosto = precioCosto;
this.precioVenta = precioVenta;
}
public void cambiarPrecioCosto(int nuevoPrecio)
{
precioCosto = nuevoPrecio;
}
public int obtenerPrecioCosto( )
{
return precioCosto;
}
public void cambiarPrecioVenta(int nuevoPrecio)
{
precioVenta = nuevoPrecio;
}
public int obtenerPrecioVenta( )
{
return precioVenta;
}
}
Bajar archivo
|
Programa de prueba El siguiente programa consiste en ir asignando (aleatoriamente) precios de venta y costo sobre el objeto, mediante un método estático llamado simulación, que además de asignar, imprime una tabla de valores en pantalla. Por simplicidad, se optó por una economía inflacionaria, en donde los precios suben o se mantienen. |
Código fuente
class prbProdBasico
{
public static void simulacion(ProductoBasico p, int n)
{
int cont = 0;
while(cont < n)
{
int aux = (int) Math.round(Math.random( ) * 5) + p.obtenerPrecioCosto( );
p.cambiarPrecioCosto(aux);
aux = (int) Math.round(Math.random( ) * 5) + p.obtenerPrecioVenta( );
p.cambiarPrecioVenta(aux);
cont++;
System.out.print("\n\t" + cont + "\t" + p.obtenerPrecioCosto( ));
System.out.print("\t" + p.obtenerPrecioVenta( ));
}
}
public static void main(String arg[ ])
{
ProductoBasico pb = new ProductoBasico("Coca-Cola 2 lts.",380,650);
System.out.println("\n Informe de precios de costo y venta mensual");
System.out.println(" -------------------------------------------\n");
System.out.println("\n\tProducto : " + pb.nombre + "\n");
System.out.println("\n\tmes\tcosto\tventa");
System.out.print("\t---\t-----\t-----");
simulacion(pb,12);
System.out.println("\n\t");
}
}
Bajar archivo