✒️ABAP / Las Interfaces Por Roberto Fluder Ahumada
ABAP Las Interfaces

• Introducción a Interfaces Las interfaces en ABAP son fundamentales para la Programación Orientada a Objetos (POO), ya que extienden la funcionalidad de las clases y proporcionan un punto de contacto común para el usuario. Son útiles cuando clases similares necesitan ofrecer funcionalidades parecidas pero con implementaciones distintas, permitiendo a los usuarios interactuar con ellas de forma unificada sin preocuparse por los detalles específicos de cada tipo de cuenta.
â—¦ Clases similares con funcionalidades similares pero código diferente: Necesidad de un punto de contacto común para interactuar con ellas.
â—¦ Ejemplo de cuentas bancarias: Un método para calcular comisiones anuales puede tener la misma interfaz pero diferente implementación entre una cuenta corriente y una de ahorro.
â—¦ Unificación de interacción: Permite al usuario ejecutar el mismo método para todas las cuentas sin preocuparse por el tipo individual.
• ¿Qué son las Interfaces? Las interfaces son estructuras independientes que se pueden implementar en una clase para ampliar su alcance. La visibilidad de los componentes de una clase (públicos, protegidos, privados) define su ámbito específico, y las interfaces extienden el ámbito público de una clase al añadir sus propios componentes, creando un punto de contacto común para los usuarios. Las interfaces, junto con la herencia, son uno de los pilares del polimorfismo, permitiendo que un mismo método con una interfaz se comporte de manera diferente en distintas clases.
â—¦ Interfaces: Estructuras independientes que se implementan en una clase para extender su ámbito.
â—¦ Determinación del ámbito de una clase: Definido por sus componentes y secciones de visibilidad.
â—¦ Extensión del ámbito de una clase: Las interfaces añaden sus componentes a la sección pública, creando un punto de contacto común.
â—¦ Papel en el Polimorfismo: Junto con la herencia, permiten que un método se comporte diferente en distintas clases.
• Definición de una Interface Las interfaces pueden ser definidas de forma global en el Repositorio R/3 o localmente dentro de un programa ABAP. La definición de una interfaz incluye la declaración de sus componentes, como atributos, métodos y eventos, de manera similar a cómo se definen en una clase. Los componentes definidos en una interfaz siempre pertenecerán a la sección pública de la clase en la que se implementa la interfaz.
â—¦ Tipos de definición: Global en el Repositorio R/3 o local en un programa ABAP.
â—¦ Sintaxis para interfaces locales: Código entre INTERFACE y ENDINTERFACE.
â—¦ Contenido de la definición: Declaración de todos los atributos, métodos y eventos.
â—¦ Visibilidad de componentes de interfaz: Pertenecen a la sección pública de la clase que la implementa.
• Implementación de Interfaces Al implementar una interfaz en una clase, los componentes de la interfaz se incorporan a la sección pública de dicha clase, permitiendo que sean direccionados como miembros de la clase bajo un nombre específico (interface_name~component_name). La clase que implementa la interfaz es responsable de proporcionar la implementación de todos los métodos definidos en la interfaz, ya que las interfaces no tienen una parte de implementación propia. Esto permite que múltiples clases implementen la misma interfaz, pero cada una con una lógica de método distinta.
â—¦ Inclusión de componentes: Se añaden a la sección pública de la clase.
â—¦ Acceso a componentes de interfaz: Se direcciona usando interface_name~component_name.
â—¦ Implementación de métodos: La clase debe implementar todos los métodos de las interfaces que adopta.
â—¦ Ausencia de parte de implementación en la interfaz: Los métodos de la interfaz son implementados por la clase que la usa.
â—¦ Flexibilidad de implementación: Diferentes clases pueden implementar la misma interfaz de maneras distintas.
• Referencias a Interfaces Las variables referenciadas son el medio para acceder a los objetos en ABAP. Pueden ser creadas con una referencia a una interfaz en lugar de una clase. Este tipo de referencia puede apuntar a objetos de cualquier clase que implemente la interfaz a la que se refiere. Una vez declarada (utilizando DATA <ref_variable> TYPE REF TO <interface_name>, donde la interfaz debe haber sido declarada previamente), una referencia a interfaz permite acceder a todos los componentes visibles de la interfaz del objeto al que apunta, lo que simplifica la interacción con objetos de diferentes clases que comparten la misma funcionalidad a través de la interfaz.
â—¦ Creación de variables referenciadas: Pueden referenciarse a interfaces además de clases.
â—¦ Capacidad de las variables referenciadas a interfaz: Pueden contener referencias a objetos de clases que implementan esa interfaz.
â—¦ Sintaxis para definir una referencia a interfaz: DATA <ref_variable> TYPE REF TO <interface_name>.
â—¦ Requisito de declaración: La interfaz debe haber sido declarada previamente en el programa.
â—¦ Funcionalidad de la referencia a interfaz: Permite acceder a todos los componentes visibles de la interfaz del objeto.
• Direccionar y asignar objetos usando referencias a interfaces Para interactuar con un objeto a través de una interfaz, primero se declara una variable referenciada a la clase, y si la clase implementa una interfaz, se puede asignar esta referencia de clase a una referencia de interfaz para que ambas apunten al mismo objeto. Esto posibilita el acceso a los atributos y métodos dependientes de instancia y estáticos de la interfaz, ya sea directamente a través de la referencia de clase (usando ref_variable->interface_name~attribute/method_name) o, de manera más polimórfica, a través de la referencia de interfaz (usando ref_variable->attribute/method_name), utilizando una sintaxis específica para cada tipo de componente. También se puede acceder a las constantes de la interfaz utilizando interface_name~constant_name y a los componentes estáticos utilizando el nombre de la clase que implementa la interfaz (class_name=>interface_name~static_component_name) o una referencia al objeto junto con el nombre de la interfaz (ref_variable->interface_name~static_component_name).
â—¦ Asignación de referencias: Una referencia de clase puede asignarse a una referencia de interfaz si la clase implementa dicha interfaz.
â—¦ Acceso a componentes de instancia vía referencia de clase: Se usa ref_variable->interface_name~attribute/method_name.
â—¦ Acceso a componentes de instancia vía referencia de interfaz: Se usa ref_variable->attribute/method_name.
â—¦ Acceso a constantes: interface_name~constant_name.
â—¦ Acceso a componentes estáticos: Utiliza el nombre de la clase o la referencia al objeto junto con el nombre de la interfaz y el componente.
• Ejemplo de Interfaces Un programa ABAP ilustra el uso de interfaces al declarar la interfaz ESTADO y las clases CONTADOR y BICICLETA. Ambas clases implementan la interfaz ESTADO en su sección pública. La creación de objetos de estas clases (CUENTA y BICI) y la ejecución de métodos a través de la interfaz (CUENTA->INCREMENTAR y BICI->MANEJAR) demuestran cómo se unifica el comportamiento a pesar de las diferentes implementaciones subyacentes, procesando los resultados y mostrándolos en pantalla.
â—¦ Programa de ejemplo: Demuestra el uso de la interfaz ESTADO y las clases CONTADOR y BICICLETA.
â—¦ Implementación de interfaz en clases: ESTADO es declarada en la sección pública de CONTADOR y BICICLETA.
â—¦ Flujo del programa: Creación de objetos, ejecución de métodos y visualización de resultados.
 
 
 
Sobre el autor
Publicación académica de Roberto Fluder Ahumada, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Avanzado.
Roberto Fluder Ahumada
Profesión: Analista de Sistemas - Chile - Legajo: TD38U
✒️Autor de: 59 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Roberto Fluder






Disponibilidad Laboral: FullTime


















