✒️ABAP Las Interfaces
ABAP Las Interfaces
Unidad 5: Programación orientada a objetos.
Lección 5: Interfaces.
1.- Introducción a interfaces.
Las clases, sus instancias y el acceso a los objetos usando variables referenciadas son la base de POO en ABAP.
Una interfaz lo que trata es de mostrar un punto de contacto común para acceder a unas funcionalidades que siendo formalmente iguales en cuanto a atributos y métodos son diferentes en lo referente a su implementación. Mediante una interfaz hacemos posible esto con objetos ABAP.
2.- Que son las interfaces?
Son estructuras independientes que se pueden implementar en una clase para extender al ámbito de esa clase.
El ámbito de una clase lo definen sus componentes (atributos y métodos) y sus secciones de visibilidad. Las interfaces, extienden el ámbito de una clase añadiendo a los componentes de la sección pública de la misma sus propios componentes. Así podemos acceder a diferentes clases por medio de un punto de contacto común.
Las interfaces y la herencia son el pilar básico del polimorfismo permitiendo que un solo método con una interfaz tenga un comportamiento distinto en diferentes clases. Si la clase a la que queremos ampliar el ámbito no tiene mas componentes públicos que los de la interfaz diremos que esta la define completamente.
3.- Definición de una interfaz.
Igual que las clases una interfaz se pude definir globalmente en el repositorio R/3 o localmente en un programa ABAP. Para definir localmente una interfaz ABAP cuenta con la senténcia, INTERFACE <nombre interfaz> ... ENDINTERFACE.
En la definición de la interfaz tendremos todos sus componentes (atributos, métodos y eventos). Así pues podemos definir los mismos componentes que en una clase.
Los componentes de una interfaz pertenecen automáticamente a la sección pública de la clase que la implementa. Una interfaz carece de la parte de implementación ya que sus métodos se implemenetan en las clases que implentan la interfaz.
4.- Implementación de interfaces.
Cuando se implementa una interfaz en una clase, los componentes de esta se añaden a la sección publica de la clase. Podemos direccionar un componente de la interfaz como si fuese un componente propio de la clase mediante la siguiente sentencia, <nombre de la interfaz~componente>.
En la parte de la implementación de la clase deberán implementarse todos los métodos de la interfaces que implementa. Esto puede hacerse de la siguiente forma METHOD <nombre interfaz~método> ... ENDMETHOD.
Las interfaces pueden ser implementadas por mas de una clase, permitiendo que los un mismo método se implemento de forma distinta en cada clase. A su vez es posible implementar más de una interfaz en una clase.
5.- Referencias a Interfaces.
Las variables referenciadas permiten acceder a los objetos analogamente en lugar de crear variables referenciadas a una clase podemos crear variables referenciadas a interfaces. Estas variables pueden contener referencias a los objetos de las clase que implementan la interfaz.
Definimos la referencia a una interfaz añadiendo la cláusula a la declaración de la variable siguiente TYPE REF TO <nombre interfaz>. La declaración de la interfaz se ha de declarar con anterioridad a la definición de la variable referenciada. Esta variable se denomina variable referenciada a interfaz o referencia a interfaz.
Una referencia a interfaz permite el siguiente tipo de declaración <ireferencia>--><componente>. Con ello ya podremos acceder a todos los componentes del objeto añadidos a su definición al implementar la interfaz.
6.- Direccionar y asignar objetos usando referencias a interfaces.
Si queremos crear un objeto de una clase primero debemos haber declarado la variable referenciada con referencia a la clase. Si sabemos que una determinada clase implementa una interfaz y queremos que la referencia a la interfaz apunte al mismo objeto que la referenciada a la clase debemos realizar la siguiente asignación:
<ireferencia> = <creferencia>
Si una interfaz contiene un atributo y un método dependientes de instancia se pueden referenciar de la siguiente manera:
1. Usando una variable referenciada a clase:
* Para el atributo. <creferencia>--><interface~atributo>
* Para referenciar un método. CALL METHOD <creferencia> --><interface~método>
2. Usando una variable referenciada a interfaz:
* Para el atributo. <ireferencia>--><atributo>.
* Pâra referenciar el método. CALL METHOD <ireferencia>--> <método>
Solo se puede acceder con el nombre de la interfaz a una constante. P.e <interfaz> --> <costante>.
Para todos los demás componentes estáticos de una interfaz solo se pueden utilizar referencias a objetos o a la clase que implementa la interfaz.
- Referencia a atributo estático. <clase> --> <interfaz~atributo>
- Referencia a método estático. CALL METHOD <clase> --> <interfaz~metodo>
 
 
 
Sobre el autor
Publicación académica de Francisco Compte Sanchez, en su ámbito de estudios para la Carrera Consultor ABAP.
Francisco Compte Sanchez
Profesión: Sap Business&integration Architect - España - Legajo: QQ38S
✒️Autor de: 105 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Consultor sap mm y sd con algún conocimiento abap a nivel de debug. quiero consolidar conocimientos técnicos para reforzar mi perfil profesional.
Certificación Académica de Francisco Compte