✒️ABAP Las Interfaces
ABAP Las Interfaces
INTERFACES: estructuras independientes que se pueden implementar en una clase para extender el ambito de esa clase. El ambito especifico de una clase viene definido por sus componentes y sus secciones de visibilidad. Los componentes protegidos de una clase definen su ambito en los que se refiere a sus subclases, las interfaces extienden el ambito de una clase añadiendo sus propios componentes a la seccion publica, esto permite a los usuarios acceder a las diferenctes clases por medio de un punto de contacto comun. Las interfaces junto con la herencia proporcianan uno de los pilares basicos del polimorfismo ya que permiten que un solo metodo con una interface se comporte distinto en diferentes clases.
Las interfaces permiten usar diferentes clases de una manera uniforme aprovechando las referencias a la interface, el polimorfismo.
Se pueden definir de manera global o local:
INTERFACE <interface>.
...
ENDINTERFACE.
La definicion contiene la declaracion de todos los componentes (atributos, metodos y eventos) de la interface.
LAS INTERACES NO TIENEN UNA PARTE DE IMPLEMENTACION YA QUE SUS METODOS SON IMPLEMENTADOS EN LA CLASE QUE IMPLEMENTA LA INTERFACE.
Cuando se implementa una interface en una clase, los componentes de la interface se añaden al resto de componentes de la seccion publica. Un componente de una interface puede ser direccionado como si fuese un miembro de la clase: <interface-componente>.
La clase tiene que implementar los metodos de todas las interfaces implementadas en ella, la parte de implementacion de la clase debe contener la implementacion de cada metodo de la interface:
METHOD <interface-metodo>.
...
ENDMETHOD.
Las interfaces pueden ser implementadas por diferentes clases, cada una se amplia con el mismo conjunto de componetes, aunque los emtodos de la interface pueden ser implementados de manera diferente en cada clase.
REFERENCIAS A INTERFACES: las variables referenciadas permiten acceder a los objetos. En lugar de crear variables referenciadas con referencia a una clase, se pueden crear con referencia a una interface. Este tipo de variables puede contener referencias a los objetos de las clases que implementen esa interface.
Definir una referencia a una interface se usa la adicion:
TYPE REF TO <interface>.
Una variable referenciada con el tipo referenciado a una interface se llama variable referenciada a una interface, o referencia a interface. Una ref a interface permite al usuario usar la declaracion: <ireferencia>-><componente> Esto eprmite al usuario acceder a todos los componentes del objeto que fueron añadidos a su definicion al implementar la interface.
Para crear un objeto de la clase primero se tiene que haber declarado una variable referenciada con referencia a la clase. Si la clase implementa una interface, se puede usar la asignacion entre la variable referenciada a la clase y una referencia a interface, para hacer que la ref a interface apunte al mismo objeto que la ref a clase en: <ireferencia> = <creferencia>
Usando la variable referenciada a una clase:
Para acceder a un atributo: <creferencia>-><interface-atributo>
Para acceder al metodo: CALL METHOD <creferencia>-><interface-metodo>
Usando la variable referenciada a una interface:
Para acceder a un atributo: <ireferencia>-><interface-atributo>
Para acceder al metodo: CALL METHOD <ireferencia>-><interface-metodo>
Siempre que los componentes estaticos de las interfaces esten implicitas, solo se puede usar el nombre de la interface para acceder a las constantes: <interface>=><constante>
Para todos los demas componentes estativos de una interface, solo se pueden usar ref a objetos o la clase que implementa la interface:
Para acceder a un atributo estatico: <clase>=<interface-atributo>
Para llamar a un metodo estatico: CALL METHOD <class>=><intf-meth>
SE24: permite definir interfaces globales en el repositorio R/3
INTERFACE POOL tipo de programa especial ABAP que almacena las interfaces globales declaradas. Tipo J y sirve como contenedor del respectivo tipo de objeto. Programa generado de manera automatica al crear la interface global. NO contienen ninguna sentencia ejecutable.
 
 
 
Sobre el autor
Publicación académica de Jose Ignacio Rodini, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Ignacio Rodini
Profesión: Licenciado en Informatica - Argentina - Legajo: HM58N
✒️Autor de: 115 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jose Rodini