✒️ABAP Las Interfaces
ABAP Las Interfaces
1. INTRODUCCIÓN A INTERFACES
A veces es necesario que clases parecidas proporcionen funcionalidades similares pero codificadas diferentes en cada clase con un punto de contacto común con el usuario. Ej. Cuenta corriente-Cuenta de Ahorro.
El usuario puede acceder a varias clases a través de la misma interface sin preocuparse de la clase a la que pertenezcan varios objetos.
2. QUÉ SON LAS INTERFACES?
Son Estructuras independientes que se pueden implementar en una clase para extender el ámbito (componentes según visibilidad) de esa clase.
- Atributos y Métodos Públicos --> Pueden usarlos todos los Usuarios
- Atributos y Métodos Protegidos --> Pueden usarlos sus Subclases
Las Interfaces y la Herencia son los pilares del Polimorfismo.
3. DEFINICIÓN DE UNA INTERFACE
Las interfases se pueden definir globalmente (Repositorio R/3) o localmente en un programa ABAP. Igual que las clases.
La definición de una interfase: INTERFACE<interface>. ... ENDINTERFACE. Contiene los componentes (atrib, métodos y eventos) que no deben asignarse a ninguna sección de visibilidad ya que automáticamente pertenecen a la sección pública de la clase. Las interfaces NO tienen implementación (los implementa la clase).
4. IMPLEMENTACIÓN DE INTERFACES
Un componente de una interface puede ser direccionado como si fuese un miembro de la clase: <interface~componente>.
La clase tiene que implementar los métodos de todas las interfaces implementadas en ella: METHOD <interfase~metodo>. .... ENDMETHOD.
5. REFERENCIA A INTERFACES
Las variables referenciadas permiten acceder a los objetos. En lugar de referenciar a una clase, las variables pueden referenciar a una interfase: TYPE REF TO <interfase>. Debemos declarar la interfase antes de crear la referencia a la misma.
Para acceder a los componentes de una interfase: <ireferencia> -> <componente>
6. DIRECCIONAR Y ASIGNAR OBJETOS USANDO REFERENCIA A INTERFACES
Para crear un objeto de la clase, antes se tiene que declarar una variable referenciada a la clase.
Si la clase implementa una interface, se puede usar la siguiente asignación para hacer que la referencia a la interface apunte al mismo objeto que la referencia a la clase:
<ireferencia> = <creferencia>
Direccionar los componentes de la interface (atrib y método dependientes de instancia):
- Acceso a Atributo: <creferencia> -> <interface~atributo>
- Acceso a Método: CALL METHOD <creferencia> -> <interface~metodo>
- Acceso a Atributo mediante ref a Interfase: <ireferencia> -> <atributo>
- Acceso a Método mediante ref a Interfase: CALL METHOD <ireferencia> -> <metodo>
Direccionar componentes estáticos (independientes de clase):
- Acceso a una Constante: <interface> =><constante>
- Acceso a atributo estático: <clase> => <interface~atributo>
- Acceso a método estático: CALL METHOD <class> => <intf~meth>
7. EJEMPLO DE INTERFACES
Ejemplo de Programa con uso de Interfaces. Interface ESTADO y clases Contador y Bicicleta.
INTERFACE estado.
METHODS imprimir.
ENDINTERFACE.
CLASS contador DEFINITION.
PUBLIC SECTION.
INTERFACES estado.
METHODS incrementar.
PRIVATE SECTION.
DATA cuenta TYPE i.
ENDCLASS.
CLASS contador IMPLEMENTATION.
METHOD estado~imprimir.
WRITE: / 'La cta en el contador es: '. cuenta.
ENDMETHOD.
ENDCLASS.
En la tr. SE24 se pueden definir tanto clases como interfases de forma global (Repositorio R/3). Al almacenarse de forma global, las interfaces se almacenan en un tipo de programa especial: el TYPE POOL que es de tipo J. Sirve como contenedor del objeto. Es comparable a un Grupo de Funciones o a un Module Pool.
 
 
 
Sobre el autor
Publicación académica de David Campillo Martinez, en su ámbito de estudios para la Carrera Consultor ABAP.
David Campillo Martinez
Profesión: Administrador de Sistemas - España - Legajo: PC32Z
✒️Autor de: 56 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de David Campillo