Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web

Extendiendo la clase Producto : ProductoExt


Extendiendo la clase Producto, se va a diseñar una clase que pueda registrar la utilidad sobre las ventas, en cada operación de este tipo.

Las propiedades de herencia se mantienen, tomando como clase base la clase Producto.

class ProductoExt extends Producto
{
    private int utilidad;

    public ProductoExt(String nombre, int precioCosto, int precioVenta, int stock)
    {
        super(nombre,precioCosto,precioVenta,stock);
        this.utilidad = 0; 
    }

    public int obtenerUtilidad( )
    {
        return utilidad;
    }

    public void vender(int cantidad)
    {
        super.vender(cantidad);
        utilidad += cantidad * ( obtenerPrecioVenta( ) - obtenerPrecioCosto( ));            
    }

}
Bajar archivo

La única novedad de esta implementación es que se sobreescribe el método vender.

Cuando se acceda a este método a través de un objeto de tipo ProductoExt no se llamará al método definido en la clase base, por el contrario, se estará accediendo al método sobreescrito, por un asunto de jerarquía de clases.

Ahora bien, si queremos que el nuevo método conserve parte del funcionamiento del método de la clase base, tenemos que llamar a ese método mediante el uso de super.

Programa de prueba

Al igual que en los programas de prueba anteriores, se realizará un simulación.

class prbProdExt
{
    public static void simulacion(ProductoExt p , int n)
    {
        int cont = 0; 
        while(cont < n)
        {
            int aux = (int) Math.round(Math.random() * 5) + p.obtenerPrecioCosto( );
  
            p.cambiarPrecioCosto(aux);
            p.comprar(aux * 4);

            aux = (int) Math.round(Math.random() * 5) + p.obtenerPrecioVenta( );

            p.cambiarPrecioVenta(aux);
            p.vender(aux * 2);
            cont++;
         
            System.out.print("\n\t" + cont + "\t" + p.obtenerPrecioCosto( ));
              System.out.print("\t" + p.obtenerPrecioVenta( ));
         
            System.out.print("\t\t" + p.obtenerStock( ));
            System.out.print("\t\t" + p.obtenerUtilidad( ));
        }  
    }  

   
    public static void main(String arg[ ]) 
    {
        ProductoExt p = new ProductoExt("Coca-Cola 2 lts.",380,650,3000);
      
        System.out.println("\n\tInforme de precios , stock y utilidades ");
        System.out.println("\t---------------------------------------\n");
      
        System.out.println("\n\tProducto : " + p.nombre + "\n");
      
        System.out.println("\n\tmes\tcosto\tventa\t\tstock\t\tutilidad");
            System.out.print("\t---\t-----\t-----\t\t-----\t\t--------");
      
        simulacion(p,12);
   
        System.out.println("\n\t");
    }

}
Bajar archivo

Bajar todos los archivos fuente