
INTERFACES: Estructuras independientes que se pueden implementar en una clase para extender el ámbito de esa clase. Proporcionan uno de os pilares básicos del polimorfismo (un solo método con una interface se comporta distinto en diferentes clases). Permiten utilizar diferentes clases de manera uniforme.
->Definición: INTERFACE <interface>. ... ENDINTERFACE.
No tienen parte de implementación pues sus métodos son implementados en la clase que implementa la interface. Mediante el uso de interfaces se puede simular la herencia múltiple en ABAP.
->Implementación: Al implementar una interface en una clase añadimos los componentes de esta al resto de componentes de la sección publica.
-Direccionar un componente de una interface como si fuera miembro de la clase: <interface~componente>.
-Implementación de los métodos de todas las interfaces: METHOD <interface~metodo>. ... ENDMETHOD.
Las interfaces pueden ser implementadas por diferentes clases.
->Referencias a interfaces: Se puede sustituir el uso de variables referenciadas por referencias a interfaces. TYPE REF TO <inteface>
Referancia a interface: <ireferencuia>-><componente>
->Direccionar y asignar objetos con referencias a interfaces:
La clase implementa una interface: <ireferencia> = <creferencia>
Para acceder a un atributo: <creferencia>-><interface~atributo>
Para acceder a un método: CALL METHOD <creferencia>-><interface~metodo>
Variable referenciada a una interface, acceso a un atributo: <ireferencia>-><atributo> y para acceso a método: CALL METHOD <ireferencia>-><método>
Para acceder a constantes: <interface>=><constante>
Para acceder a un atributo estático: <clase>=><interface~atributo>
Para acceder a un metodo estático: CALL METHOD <clase>=><interface~metodo>
EJEMPLO: Ver ejemplo ZPRUEBA_INTERFACES