✒️ABAP POO Las Interfaces
ABAP POO Las Interfaces
Las clases , sus instancias (los objetos) y el acceso a los objetos usando variables referenciadas son la base de la POO en ABAP, además hay veces que es necesario para las clases similares , proporcionar funcionalidades similares pero que están codificadas diferentes en cada clase, las cuales dan un punto de contacto común con el usuario.
Por ejemplo, podríamos tener dos clases similares , Cuenta corriente y Cuenta de ahorro , las cuales tienen un método para calcular las comisiones del año, Las interfaces y nombre de los métodos son los mismos pero la implementación es diferente.
El usuario de las clases y las instancias tiene que ser capaces de ejecutar el método para todas las cuentas sin preocuparse del tipo de cada cuenta individual. Esto en ABAP es posible mediante el uso las interfaces.
¿Qué son las interfaces? : son estructuras independientes que se pueden implementar en una clase para extender el ámbito de esa clase. Las interfaces permiten usar diferentes clases de una manera uniforme aprovechando las referencias a la interfaces es decir el polimorfismo.
La definición de una interface.
Las interfaces se definen con la siguiente sentencia INTERFACE <name> … ENDINTERFACE.
La definición contiene la declaración de todos los componentes (atributos métodos y eventos ) de la interface, se pueden definir los mismos componentes en una interface que en una clase, Los componentes de las interfaces no tienen que ser asignados a ninguna sección de visibilidad ya que automáticamente pertenecen a la sección publica de la clase en la que la interface es implementada.
“las interfaces no tienen una parte de implementación ya que sus métodos son implementados en la clase que implementa la interface”.
La implementación de interfaces.
Cuando se implementa una interface en una clase los componentes de la interface se añaden al resto de componentes de la sección publica. Un componente de una interface puede ser direccionado como si fuere un miembro de la case bajo el siguiente nombre. <interface~componente>
la clase tiene que implementar los métodos de todas las interfaces implementadas en ella. La parte de implementación de la clase debe contener la implementación de cada método de la interface. METHOD <interface~metodo> … ENDMETHOD.
Las interfaces pueden ser implementadas por diferentes clases, cada una de las clases es ampliada con el mismo conjunto de componentes, aunque los métodos de la interface pueden ser implementados de manera distinta en cada clase.
Las referencias a interfaces.
Para crear una variable con referencias a una interface es parecido a la referencia de una clase , este tipo de variables referenciadas puede contener referencias a los objetos de las clases que implementan esa interface.
Para definir una referencia a una interface se usa la sgte adición: TYPE REF TO <interface>
La interface que utilicemos para definir la referencia debe haber sido declarada en el programa antes que esta declaración tenga lugar.
Una Variable referenciada con el tipo referenciado a una interface se llama variable referenciada a una interface o referencia a interface solamente. Una referencia a interface permite al usuario usar la sigte declaración.
<ireferencia> -> <componente>
Esto permite al usuario acceder a todos los componentes del objeto que fueron añadidos a su definición al implementar la interface.
Como direccionar y asignar objetos usando referencias a interfaces.
Para crear un objeto de la clase primero se tuvo que haber creado una variable referenciada con referencia a la clase, Si la clase implementa una interface se puede usar la asignación entre la variable referenciada a la clase y una referencia a interface. <ireferencia> = <creferencia>.
Si la interface contiene un atributo dependiente de instancia y un método de instancia se puede direccionar los dos componentes de la sgte forma.
- Variable referenciada a una clase.
o Para acceder a un atributo
<creferencia> -> <interface~atributo>.
o Acceder al método
CALL METHOD <creferencia>-><interface~metodo>
- Variable referenciada a una interface.
o Para acceder a un atributo
<ireferencia> -> <atributo>
o Para acceder al método
CALL METHOD <ireferencia> -> <método>
Siempre que los componentes estáticos de la interfaces este implicados, solo se puede usar el nombre de la interface para acceder a las constantes.
<interface> => <constante>
Para los demás componentes estáticos de una interface solo se pueden usar referencias a objetos o a la clase que implementa la interface. Para acceder a un atributo estático:
<clase> => <interface~atributo>.
CALL METHOD <class> => <interface~metodo>
Ejemplos de interfaces.
Aqui declaramos la interface ESTADO y las clases CONTADOR y BICICLETA dentro de la sección publica de ambas clases declaramos la interface ESTADO.
Luego dentro del S.O.S. creamos los objetos cuenta y bici, ejecutamos los métodos incrementar y manejar, lo almacenamos a una ti y hacemos un loop.
 
 
 
Sobre el autor
Publicación académica de Tobias Emanuel Mareco Rojas, en su ámbito de estudios para el Máster ABAP POO.
Tobias Emanuel Mareco Rojas
Profesión: Ingeniería en Informática - Paraguay - Legajo: QL24S
✒️Autor de: 92 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Certificación Académica de Tobias Mareco