Programacion orientada a objetos en ABAP (POO) Part III

Esta es la tercera entrega del mini curso de programación orientada a objetos (POO) en ABAP, en la primera parte vimos los conceptos básicos de la POO, en la segunda parte aprendimos a crear una clase y como utilizarla en nuestros programas, ahora aprenderemos a sacar provecho de la herencia para reutilizar el código y facilitar el trabajo de modificar lo que ya hemos programado antes.

Siguiendo el ejemplo anterior, ahora deseamos tener una clase Vehiculo, con todas las propiedades y métodos de la clase Articulo, pero ademas deseamos que exista una propiedad llamada Modelo, la cual sirve para leer o definir el modelo del vehículo, ademas vamos a re-definir el comportamiento del método Vender, para que antes de realizar la venta verifique si hay existencias suficientes. Veamos como quedará la clase:

Propiedades

  1. Código (heredada)
  2. Costo (heredada)
  3. Precio (heredada)
  4. Cantidad (heredada)
  5. Modelo

Métodos

  1. Un método para leer el valor de cada propiedad (heredada)
  2. Un método para definir el valor de cada propiedad (Excepto la propiedad cantidad que será de solo lectura) (heredada)
  3. Un método comprar, con el parámetro cantidad, el cual incrementa la propiedad Cantidad según el parámetro recibido. (heredada)
  4. Un método vender, con el parámetro cantidad, el cual resta la propiedad Cantidad según el parámetro recibido y envía un mensaje de confirmación. (Re-definida, para verificar existencia)

Implementación de la herencia en clases.

Para crear la clase Vehículo, primero entramos en la transacción SE24, ingresamos el nombre Z_VEHICULO y presionamos el botón Crear, y en la siguiente pantalla aceptamos los valores predeterminados. Y en la pantalla siguiente (mostrada abajo), presionamos el botón Crear Herencia, con esto se mostrará una casilla de texto para ingresa la clase de la cual deseamos heredar, en este caso Z_ARTICULO. Dejamos todos las opciones como se muestra en la figura y presionamos sobre el botón Grabar.

Como crear herencia de clases en ABAP.

Ahora ingresamos la nueva propiedad, en la pestaña Atributos, como se muestra en la siguiente imagen, las demás propiedades han sido heredadas pero no se visualizan desde aquí.

Propiedades de la clase (atributos).

Redefinir métodos para reutilizar y mejorar la clase base

Ahora debemos re-definir el método Vender, para que verifique si hay existencias. Primero en la ficha Métodos, desmarcamos el cheque Filtro (para mostrar los métodos heredados), luego seleccionamos el método vender y presionamos el botón Redefinir, esto nos permitirá sobre escribir el código para este método (esto solo va a afectar a la clase Vehiculo y no a la clase articulo).

Pasos para redefinir el metodo de una clase en ABAP.

Ahora ingresamos el siguiente código en el método Vender (redefinido)

method VENDER.
   DATA: CANTIDAD TYPE INT4.

   "Recuperar existencia
   CALL METHOD GET_CANTIDAD( IMPORTING CANTIDAD_EXISTENCIA = CANTIDAD ).

   IF CANTIDAD >= CANTIDAD_A_VENDER.
    "Llamar al metodo de la clase padre (Z_ARTICULO )
    "Para reutilizar la funcionalidad del metodo vender
    CALL METHOD SUPER->VENDER
    EXPORTING
      CANTIDAD_A_VENDER = CANTIDAD_A_VENDER .

   ENDIF.
 endmethod.

Conclusiones

  1. Al emplear la programación orientada a objetos, es necesario realizar un análisis y diseño para definir las clases base y las clases finales, de modo que las propiedades y métodos comunes se implementen en las clases bases, con el fin de que las clases finales sean lo más sencillas posible.
  2. La POO permite realizar cambios fácilmente  cuando el cambio se hace en la clase base, ya que automáticamente se actualizan todas las clases heredadas de estas.
  3. Permite la re utilización de código de manera trasparente.
Programacion orientada a objetos en ABAP (POO) Part III

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba