✒️ABAP Las propiedades de la programación orientada a objetos
ABAP Las propiedades de la programación orientada a objetos
PROPIEDADES DE LA PROGRAMACION ORIENTADA A OBJETOS
Existen tres propiedades que presentan los objetos:
· ENCAPUSLACION
· HERENCIA
· POLIMORFISMO
ENCAPSULACION
También conocido como “ocultamiento”, se refiere a que todos los objetos restringen la visibilidad de sus recursos (atributos y métodos) al resto de los usuarios.
Las tres áreas de visibilidad (pública, privada y protegida) son la base de la encapsulación.
Desde fuera el objeto es invisible, simplemente se usa
Cuando se define una clase hay que tener mucho cuidado en el diseño de los componentes públicos. Declarar los mínimos posibles.
Los componentes públicos de las clases globales no pueden ser cambiados una vez liberada la clase.
Se puede proteger un atributo usando la adición READ-ONLY
HERENCIA
Es la capacidad que tiene una clase de heredar las propiedades y métodos de otra clase.
Permite crear una nueva clase a partir de una existente heredando su propiedades..
Esto se realiza añadiendo la adición INHERITING FROM a la sentencia de definición de la clase:
CLASS <sublclase> DEFINITION INHERITING FROM <superclase>.
La nueva clase hereda todos los componentes de la clase ya existente.
La clase original se conoce como superclase la nueva como sublcase.
Solo los componentes públicos y protegidos de la superclase son visibles a la subclase. Aunque los componentes privados de la superclase existen en la subclase, no son visibles.
Se pueden declarar componentes privados en una subclase que tengan los mismos nombre que componentes privado de la superclase.
Cada clase trabaja con sus propios componentes privados.
Los métodos que una subclase hereda de una súper clase usan los atributos privados de la superclase y no ningún componente privado de la subclase con el mismo nombre
ESPECIALIZACION:
Una clase subclase, hereda las principales características de la clase superclase
GENERALIZACION
Una clase superclase hereda las principales características de la clase subclase.
Si la superclase no tiene una sección o parte privada la subclase es una réplica exacta de la superclase. Se pueden añadir nuevos componentes a la subclase y convertimos a la subclase en una versiona especializada de la superclase. Si una subclase es una superclase de otras clases, se está añadiendo un nuevo nivel de especialización.
TIPOS DE HERENCIA
Simple: una clase puede tener más de una subclase de las cuales es superclase, pero solo puede tener una superclase de la cual es subclase.
Múltiple: una clase heredada de varias superclases (no se puede en ABAP)
Cuando una subclase hereda de una superclase que a su vez hereda de otra superclase de la cual es subclase, se forma una estructura de árbol en la cual el grado de especialización aumenta con cada nivel jerárquico que se añada. A la inversa, las clases se hacen más generales hasta que se alcanza en nodo raíz del árbol de herencia
NOTA: El nodo raíza de todos los arboles de herencia en los objetos ABAP es la clase predefinida vacía OBJETC.
Cuando se define una clase no se tiene que especificar explícitamente esta clase como superclase, es una relación implícita.
Dentro de un árbol de herencia, dos nodos adyacentes son la superclase y subclase directamente uno de otro.
Las declaraciones de componentes en una subclase están distribuidas a través de todos los niveles superiores en el árbol de herencia.
Adicion ABSTRAC Y FINAL
En las sentencias METHOD o CLASS
Definen método o clases abstraca o finales.
Un meto abstracto se define en una clase abstracta y no puede ser implementado en es una clase, debe ser implementado en una subclase de la clase. No pueden ser instanciadas.
Un método final no puede ser redefinido en una subclase. Las clases finales no pueden tener subclases. Son las que finalizan el árbol de herencia.
POLIMORFISMO
Métodos que se llaman exactamente igual pueden comportarse de manera distinta en clases diferentes. También se la conoce como “REDEFINICION”
Consiste en conseguir que un objeto de una clase se comporte como un objeto de cualquiera de sus subclases, dependiendo de la forma de llamar a los métodos de dicha clase o subclases.
Todas las subclases contienen los componentes de todas las clases existente entre ellas mismas y el nodo raíz del árbol de herencia.
La visibilidad de un componente no puede ser cambiada nunca.
Se puede usar la adición REDEFINITION en la sentencia METHODS para definir un método público o protegido dependiente de instancia de una subclase y hacer que realice una función más especializada.
CLASS counter DEFINITION.
…PUBLIC SECTION.
……METHODS: set IMPORTING value(set_value) TYPE i, increment,
…………………get EXPORTING value(get_value) TYPE i.
…PROTECTED SECTION.
……DATA count TYPE i.
ENDCLASS.
CLASS counter IMPLEMENTATION.
…METHOD set.
……count = set_value.
…ENDMETHOD.
…METHOD increment.
……ADD 1 TO count.
…ENDMETHOD.
…METHOD get.
…… get_value = count.
…ENDMETHOD.
ENDCLASS.
CLASS counter_ten DEFINITION INERITING FROM counter.
…PUBLIC SECTION.
……METHODS increment REDEFINITION.
……DATA count_ten(1) TYPE c.
ENDCLASS.
Cuando se redefine un método no se puede cambiar su interface.
La declaración y la implementación de un método en una superclase no se ve afectada cuando se redefine un método en un subclase.
La implementación de la redefinición en la subclase ‘oculta’ la implementación original en la superclase.
Cualquier referencia que apunte a un objeto de la subclase usa el método redefinido, incluso si la referencia fue definida con referencia a la superclase. Esto se aplica particularmente a la referencia a si mismo me->.
Dentro de un método redefinido se puede usar la referencia SUPER-> para acceder al método ‘oculto’. Esto permite usar la funcionalidad existente en el método de la superclase sin tener que codificarla de nuevo en la subclase.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para la Carrera Consultor ABAP.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial