✒️ABAP POO Las Interfaces
ABAP POO Las Interfaces
U2-L6
Introducción a Interfaces
Las clases, sus instancias(objetos) y el acceso a los objetos usando variables referenciadas son la base de la POO en ABAP.
Hay veces que se requieren clases similares que proporcionen funcionalidades similares pero codificadas diferente(dan punto de contacto común con usuario). Por ej. dos clases similares "Cuenta corriente" y "Cuenta de ahorro", tienen un método para calcular comisiones del año. Las interfaces y nombres de los métodos son los mismos pero la implementación diferente.
El usuario tiene que ser capaz de ejecutar el método para todas las cuentas sin preocuparse del tipo de cada cuenta individual.
Con objetos ABAP es posible mediante el uso de interfaces.
Interfaces
Estructuras independientes que se implementan en una clase para extender el ámbito de esa clase.
El ámbito de una clase se define por sus componentes y secciones de visibilidad.
Las interfaces extienden el ámbito de una clase añadiendo sus componentes a la sección pública, permitiendo a los usuarios acceder a diferentes clases por medio de un punto de contacto común.
Las interfaces y herencia; pilares básicos del polimorfismo, permiten que un sólo método con una interface se comporte distinto en diferentes clases.
Interfaces, uso de diferentes clases de manera uniforme.
Interfaces, amplian ámbito público de clases.
Si una clase no cuenta con componentes públicos, la interface describe su ámbito público.
Definición de una Interface
Igual que las clases, se pueden definir global o localmente.
INTERFACE <interface>.
...
ENDINTERFACE.
En la definición se pueden definir los mismos componentes que en una clase (atributos, métodos y eventos).
Los componentes en interfaces, pertenecen automáticamente a la sección pública de la clase en la que se va implementar la interface.
No tienen parte de implementación ya que los métodos son implementados en la clase.
ABAP no soporta herencia múltiple, se puede alcanzar este concepto incluyendo mas de una interface en la declaración de una clase(sentencia INTERFACE). Así se tendrán disponibles los componentes de todas las interfaces y se deberá implementar todos los métodos disponibles en las interfaces de la clase.
Implementación de Interfaces
Un componente de una interface puede direccionarse como si fuese un miembro de la clase:
<interface~componente>.
La clase implementa los métodos de todas las interfaces implementadas en su sección de implementación.
METHOD <interface~metodo>.
...
ENDMETHOD.
En cada clase los métodos de las interfaces puede implementarse de manera distinta.
Referencias a Interfaces
Variables referenciadas a interfaces o referencia a interface; pueden contener referencias a los objetos de las clases que implementan esa interface.
TYPE REF TO <interface>
La interface utilizada de referencia debe declararse antes de esta instrucción.
Acceder a componentes del objeto, añadidos con implementación de interface:
<ireferencia>-><componente>.
No se accede con esta variable, a los objetos propios de la clase que implementa la interface
Direccionar y asignar objetos usando referencias a interfaces
Variable con referencia a clase.
Si la clase implementa una interface, variable con referencia a interface.
Para que la referencia a interface apunte al mismo objeto que la referencia a clase:
<ireferencia> = <creferencia>
Para acceder a un atributo o método dependiente de instancia de una interface usando una variable referenciada a clase:
atributo: <creferencia>-><interface~atributo>
método: CALL METHOD <creferencia>-><interface~metodo>
Usando variable referenciada a interface:
atributo: <ireferencia>-><atributo>
método: CALL METHOD <ireferencia>-><metodo>
Componentes estáticos:
- Para constantes solo se puede usar el nombre de interface:
<interface>=><constante>
- Para todos los demás componentes de una interface se usan ref a objeto o clase que implementan la interface:
atributos: <clase>=><interface~atributo>
métodos: CALL METHOD <clase>=><interface~metodo>
Las interfaces se pueden declarar:
- Local; prog ABAP.
- Global; se24. Almacenadas en tipo especial de programa ABAP (pool de interfaces) (tipo J). Cada pool contiene definición de una sola interface, programa generado automático al crear la interface global, no contiene sentencias ejecutables.
 
 
 
Sobre el autor
Publicación académica de Denisse Adriana Hernandez Trujillo, en su ámbito de estudios para el Máster ABAP POO.
Denisse Adriana Hernandez Trujillo
Mexico - Legajo: AH80E
✒️Autor de: 71 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Denisse Hernandez