Unidad 5: Programación Orientada a Objetos.
Lección 5: Interfaces.
1.- Introducción a Interfaces.
Las clases son instancias (los objetos) y el acceso a los objetos usando variables referenciadas son la base de la POO.
En la vida real, podríamos tener 2 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 capaces de ejecutar el método para todas las cuentas sin preocuparse del tipo de cada cuenta individual.
Con objetos ABAP esto es posible mediante el uso de interfaces.
2.- Interfaces.
Son estructuras independientes que se pueden implementar en una clase para extender el ámbito de esa clase.
Las interfaces junto con la herencia proporcionan uno de los pilares básicos del polimorfismo, ya que permiten que un sólo método con una interfaces se comporte distinto en diferentes clases.
3.- Definición de un interface.
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 definición de un interface local es el código existente entre las sentencias siguientes:
INTERFACE <interface>.
...
ENDINTERFACE.
Las interfaces no tienen una parte de implementación ya que sus métodos son implementados en la clase que implementa la interface.
4.- 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 pública.
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.
5.- Referencias a interfaces.
Las variables referenciadas permiten acceder a los objetos. En lugar de crear variables referenciadas con referencia a una clase, se pueden crear con referencia a una interface.
La interface que utilicemos para definir la referencia debe haber sido declarada en el programa antes que esta declaración tenga lugar.
6.- Direccionar y asignar objetos usando referencias a interfaces.
Para crear un objeto de la clase primero se tiene que haber declarado una variable referenciada con referencia a la clase.
Si la clase implementa una interface, se puede usar la siguiente asignación entre la variable referenciada a la clase y una referencia a interface, para hacer que la referencia a interface apunte al mismo objeto que la referencia a clase en:
<ireferencia> = <creferencia>