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.
/* prodbasic.java */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; } }
|
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
continuar/* prueba1.java */class prueba1 { 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"); } }