✒️ABAP POO / Las Interfaces Por Juan Carro

Selector Alummnos / Empresas

ABAP Las Interfaces

ABAP Las Interfaces

Interfaces

Son estructuras independientes que se pueden implementar en una clase, permitiendo extender el ambito (sus componentes y secciones de visibilidad) de la misma.

Junto con la hererencia, es uno de los pilares del polimorfismo, ya que permite que un solo metodo de una interface se comporte distinto en diferentes clases que la implementen.

Si la clase no tiene componentes publicos, al implementar una interfaz, la interfaz definira el ambito publico de la clase.

Si se defininen interfaces globales, se guardan en un pool de interfaces tipo J, que continue la definicion de una sola interfaz y es generado automaticamente cuando creamos una interface global.

Para definicion local, se usa

INTERFACE <nombre>.

ENDINTERFACE.

Los componentes de las interfaces AUTOMATICAMENTE PERTENECEN A LA SECCION PUBLICA de la clase en la que será implementada.

Las interfaces tampoco tienen una parte de implementacion, ya que sus metodos son implementados en la clase que la implementan. Es como un esqueleto

Dado que en abap solo se puede implementar herencia simple (una clase solo puede heredar de otra clase), pero se puede incluir mas de una interface en una declaracion de una clase usando INTERFACE, podemos simular herencia multiple.

Cuando se implementa una interfaz en una clase, los componentes de la interface se pueden acceder con la sentencia

<interface~componente>

La clase tiene que implementar los metodos de todas las interfaces implementadas en ella.

Para implementarlo, se usa

METHOD <interface~metodo>.

..

ENDMETHOD.

Variables con referencias a interfaces

Las variables referenciadas permiten acceder a los objetos. En lugar de crear variables referenciadas con referencias a una clase, se puede crear con referencia a una interface.

Este tipo de variables referenciadas puede contener referencias a los objetos de las clases que implementen estas interfaces.

Para hacer una referencia se usa

TYPE REF TO <interface> ESTA DEBE SER DECLARADA EN EL PROGRAMA ANTES DE HACER ESTA DECLARACION

Esta referencia permite al usuario hacer la declaracion

<referencia a interface>->componente

Para acceder a todos los componentes visibles de la interce del objeto al cual la referencia esta apuntando.

Direccionar y asignar objetos usando referencias a interfaces

Para crear un objeto de la clase, primero se tiene que haber declarado una variable con referencia a dicha clase.

Si esa clase implementa una interface, se puede usar esta asignacion para hacer que la referencia a interface apunte al mismo objeto que la refrencia a la clase

<referencia a interface> = <referencia a clase>

Si la interface continue atributos o componentes de instancia, se pueden direccionar de 2 maneras:

Usando la variable referenciada a una clase

<referencia a clase> -> <interface~atributo> o

CALL METHOD <referencia a clase> -> <interface~metodo>

Usando la variable referenciada a una interface:

<referencia a interface> -> <atributo>

CALL METHOD <referencia a interface> -> <metodo>

Para metodos estaticos de las interfaces, solo se puede usar el nombre de la interface para acceder a las contantes:

<interface> => <contante>

Para el resto de los componentes estaticos, solo se pueden usar referencias a objetos o la clase que implementa la interface:

<clase> => <interface~atributo> ó

CALL METHOD <clase> => <interface~metodo>

Ejemplos

REPORT ZPRUEBA_INTERFACES.

INTERFACE estado.
METHODS imprimir.
ENDINTERFACE. "estado

CLASS contador DEFINITION.
PUBLIC SECTION.
INTERFACES estado.
METHODS incrementar.
PRIVATE SECTION.
DATA cuenta TYPE i.
ENDCLASS. "contador DEFINITION

CLASS contador IMPLEMENTATION.
METHOD estado~imprimir.
WRITE: / 'La cuenta en el contador es: ', cuenta.
ENDMETHOD. "estado~imprimir

METHOD incrementar.
ADD 1 TO cuenta.
ENDMETHOD. "incrementar
ENDCLASS. "contador IMPLEMENTATION

CLASS bicicleta DEFINITION.
PUBLIC SECTION.
INTERFACES estado.
METHODS manejar.
PRIVATE SECTION.
DATA velocidad TYPE i.
ENDCLASS. "bicicleta DEFINITION

CLASS bicicleta IMPLEMENTATION.
METHOD estado~imprimir.
WRITE: / 'La velocidad de la bicicleta es: ', velocidad.
ENDMETHOD. "estado~imprimir

METHOD manejar.
ADD 10 TO velocidad.
ENDMETHOD. "manejar
ENDCLASS. "bicicleta IMPLEMENTATION

*programa principal

DATA: cuenta TYPE REF TO contador,
bici TYPE REF TO bicicleta,
estado TYPE REF TO estado,
ti_estado TYPE TABLE OF REF TO estado.

START-OF-SELECTION.

CREATE OBJECT: cuenta, bici.

DO 5 TIMES.
CALL METHOD: cuenta->incrementar,
bici->manejar.
ENDDO.

APPEND: cuenta TO ti_estado,
bici TO ti_estado.

LOOP AT ti_estado INTO estado.
CALL METHOD estado->imprimir.
ENDLOOP.

Al ejecutar, en pantalla saldra

La cuenta en el contador es: 5

La velocidad de la bicicleta es: 50

Ejercicio de practica

El objetivo del ejercicio será crear una Interface para implementar dos contadores diferentes pero que se puedan llamar de la misma manera. P

ara ello, crearemos la interface I_CONTADOR que tendrá el método IMPRIMIR.

También crearemos las definiciones e implementaciones de las clases CONTADOR1 y CONTADOR2 con la siguiente configuración:

CONTADOR 1 En la sección pública de la clase crearemos el método INCREMENTAR el cual sumará 1 a la variable CUENTA y declararemos la implementación de la interface I_CONTADOR.

En la sección privada de la clase declaramos la variable CUENTA de tipo I.

CONTADOR 2 En la sección pública de la clase crearemos el método INCREMENTAR el cual sumará 100 a la variable CUENTA y declararemos la implementación de la interface I_CONTADOR.

En la sección privada de la clase declaramos la variable CUENTA de tipo I.

Para ambas clases implementaremos el método IMPRIMIR perteneciente a la interface I_CONTADOR que imprime el texto “El contador es:” y seguidamente muestra el contenido de CUENTA.

Luego dentro del evento START-OF-SELECTION crearemos los objetos CUENTA1 y CUENTA2 del tipo referencia CONTADOR1 y CONTADOR2.

Realizaremos una iteración mediante la sentencia DO de 5 iteraciones donde llamaremos a los métodos CUENTA1->INCREMENTAR y CUENTA2- >INCREMENTAR.

Finalmente agregaremos los objetos a una tabla interna del tipo de la interface I_CONTADOR y recorreremos esta tabla llamando al método IMPRIMIR de la interface I_CONTADOR.

IMPORTANTE: Este último procedimiento dentro del evento STARTOFSELECTION es el mismo que mostramos en el ejemplo de la lección.

REPORT ZEJERCICIO_INTERFACES_2_6.

INTERFACE i_contador.
METHODS imprimir.
ENDINTERFACE. "i_contador

CLASS contador1 DEFINITION.

PUBLIC SECTION.
INTERFACES i_contador.
METHODS incrementar.
PRIVATE SECTION.
DATA cuenta TYPE i.
ENDCLASS. "contador1 DEFINITION

-*
CLASS contador1 IMPLEMENTATION.
METHOD i_contador~imprimir.
WRITE: / 'El contador es:', cuenta.
ENDMETHOD. "i_contador~imprimir
METHOD incrementar.
ADD 1 TO cuenta.
ENDMETHOD. "incrementar
ENDCLASS. "contador1 IMPLEMENTATION

CLASS contador2 DEFINITION.
PUBLIC SECTION.
INTERFACES i_contador.
METHODS incrementar.
PRIVATE SECTION.
DATA cuenta TYPE i.
ENDCLASS. "contador2 DEFINITION

CLASS contador2 IMPLEMENTATION.
METHOD i_contador~imprimir.
WRITE: / 'El contador es:', cuenta.
ENDMETHOD. "i_contador~imprimir
METHOD incrementar.
ADD 100 TO cuenta.
ENDMETHOD. "incrementar
ENDCLASS. "contador2 IMPLEMENTATION

*Programa principal

DATA: cuenta1 TYPE REF TO contador1,
cuenta2 TYPE REF TO contador2,
i_contador TYPE REF TO i_contador,
ti_contador TYPE TABLE OF REF TO i_contador.

START-OF-SELECTION.

CREATE OBJECT: cuenta1, cuenta2.

DO 5 TIMES.
CALL METHOD: cuenta1->incrementar,
cuenta2->incrementar.
ENDDO.

APPEND: cuenta1 TO ti_contador,
cuenta2 TO ti_contador.

LOOP AT ti_contador INTO i_contador.
CALL METHOD i_contador->imprimir.
ENDLOOP.


 

Escanear / Compartir

 

 


Sobre el autor

Publicación académica de Juan Pablo Carro, en su ámbito de estudios para el Master ABAP Orientado a Objetos.

SAP SemiSenior

Juan Pablo Carro

Profesión: Analista de Sistemas - Argentina - Legajo: DB81J

✒️Autor de: 8 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Certificación Académica de Juan Carro

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Las Interfaces" de la mano de nuestros alumnos.

SAP Expert



Las interfaces en ABAP son un pilar de la Programación Orientada a Objetos (POO), utilizadas para definir un conjunto de métodos sin implementar, que sirven como contrato entre distintas clases. Permiten estandarizar comportamientos y garantizar que las clases que las implementen cumplan con determinadas funciones, sin importar su jerarquía o estructura interna. En ABAP, una interfaz se declara con la palabra clave INTERFACE y sus métodos se implementan en las clases mediante INTERFACES. Este enfoque fomenta la reutilización de código, la independencia entre componentes y la extensibilidad del sistema. Las interfaces pueden combinarse con herencia y polimorfismo, permitiendo que distintos objetos...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Introducción a Interfaces: Las clases, sus instancias (los objetos) y el acceso a los objetos usando variables referenciadas son la base de la programación orientada a objetos en ABAP. Además, hay veces en las que es necesario para clases similares proporcionar funcionalidad 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 nombres de los métodos son los mismos pero la implementación es diferente. El usuario de las clases y las instancias...

Acceder a esta publicación

Creado y Compartido por: Jeferson Jos Pena Curvelo / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

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...

Acceder a esta publicación

Creado y Compartido por: Tobias Emanuel Mareco Rojas / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Las Interfaces. Que son? Son estructuras independientes que se pueden implementar en una clase para extender el ambito de esa clase. Al igual que las clases, las interfaces se pueden definir o bien globalmente en el Repositorio R/3 o localmente en un programa ABAP. La definicion de una interface local es el codigo existente entre las sentencias siguientes INTERFACE <interface> ENDINTERFACE. Las interfaces 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. Las variables referenciadas permiten acceder a los objetos. En lugar de crear...

Acceder a esta publicación

Creado y Compartido por: David De Jesùs Restrepo Cañas

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

INTERFACES Las clases, sus instancias (los objetos) y el acceso a los objetos usando variables referenciadas son la base de la programación orientada a objetos en ABAP. Además, hay veces en las que es necesario para 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 nombres de los métodos son los mismos pero la implementación es diferente. El usuario de las clases y las instancias tiene que ser capaz...

Acceder a esta publicación

Creado y Compartido por: Enrique Horacio Lugo Lander

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

INTERFACES INTRODUCCION A INTERFACES La base de la POO en ABAP son las clases, instancias (los objetos) y el a cceso a los objetos usando variables. En algunos casos es necesrio isar clases similares porporcionar funcionalidades similares pero codificadas de diferentes en cada clase. El usuario de la clase y las instancias, es capaz de ejecutar el metrodo para todas las cuentas. QUE SON LAS INTERFACES? INTERFACES. Estructuras independientes que se pueden implementar en una clase para extender el ambito de esa clase Una clase viene definido por sus componentes y sus secciones de visibilidad. Las interfaces junto con la herencia proporcionan uno de los pilares basicos del polimorfismo. Las interfaces permiten usar diferentes clases de manera...

Acceder a esta publicación

Creado y Compartido por: Ixhel Magai Lopez Valencia / Disponibilidad Laboral: PartTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Interfaces Son estructuras independientes que se pueden implementar en una clase, permitiendo extender el ambito (sus componentes y secciones de visibilidad) de la misma. Junto con la hererencia, es uno de los pilares del polimorfismo, ya que permite que un solo metodo de una interface se comporte distinto en diferentes clases que la implementen. Si la clase no tiene componentes publicos, al implementar una interfaz, la interfaz definira el ambito publico de la clase. Las interfaces se pueden definir de manera local o global. Si se defininen interfaces globales, se guardan en un pool de interfaces tipo J, que continue la definicion de una sola interfaz y es generado automaticamente cuando creamos una interface global. Para definicion...

Acceder a esta publicación

Creado y Compartido por: Juan Pablo Carro / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Interfaces Introducción a interfaces Las clases, sus instancia (los objetos) y el acceso a los objetos usando variables referenciadas son la base de la programación orientada a objetos en ABAP. Que son las interfaces? Interfaces: Son estructuras independientes que se pueden implementar en una clase para extender el ambito de esa clase. El ambito especificos de una clase viene definido por sus componentes y sus secciones de visibilidad. Los componentes protegidos de una clase definen su ambito en lo que se refiere a sus subclases. Las interfaces extienden el ambito de una clase añadiendo sus propios componentes a la sección publica. Estos permite a los usuarios acceder a diferentes clases por medio de un punto de contacto...

Acceder a esta publicación

Creado y Compartido por: Marvin Raul Lopez Morales / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


INTERFACES – LECCION 2-6 INTRODUCCION A INTERFACE Las clases, sus instancias (los objetos) y el acceso a los objetos usando variables referenciadas son la base de la programación orientada a objeto Además, hay veces en las que es necesario para 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 nombres de los métodos son los mismos pero la implementación es diferente El usuario de las clases...

Acceder a esta publicación

Creado y Compartido por: Cristian Darwin Arteaga Diaz / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Bien, el ejercicio me resultó interesante, porque lo cambié un poquito. Me quedó claro que la variable referenciada a Interface es una variable. Me confundí pensando que era otro objeto. Eso me quedó en claro en el ejercicio, donde hice caso omiso a imprimir la tabla y decidí imprimir directamente cada caso. SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S31 { font-style: italic; color: #808080; } .L0S32 { color: #3399FF; } .L0S33 { color: #4DA619; } .L0S52 { color: #0000FF; } .L0S55 { color: #800080; } .L0S70 { color: #808080; } *&---------------------------------------------------------------------* *& Report ZPRUEBA_INTERFACE_RQ48L *&...

Acceder a esta publicación

Creado y Compartido por: Alfredo César

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:


🔎Googlear en CVOSOFT:
Googlear: "ABAP - Las Interfaces"

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!