![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las propiedades de la programación orientada a objetos
ABAP Las propiedades de la programación orientada a objetos
![ABAP Las propiedades de la programación orientada a objetos ABAP Las propiedades de la programación orientada a objetos](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/498.jpg)
1. PROPIEDADES de la POO
Existen 3 Propiedades Fundamentales de los Objetos:
Encapsulación, Herencia y Polimorfismo
2. ENCAPSULACIÓN
Tb se conoce como Ocultamiento. Todos los objetos restringen la visibilidad de sus recursos (atributos y métodos) al resto de usuarios. La base de la Encapsulación son las 3 áreas de visibilidad: pública, privada y protegida.
La interfase de cada objeto dicta cómo interactuar con él. Desde fuera, el objeto y su implementación es invisible (sólo se conoce su interfase). Al diseñar una clase, se debe declarar el mínimo de componentes públicos posible. Además de la visibilidad de los atributos, se puede proteger de cambios usando la adición READ-ONLY.
3. HERENCIA
Es la capacidad de una clase de heredar las propiedades y métodos de otra clase.
La herencia permite crear una nueva clase a partir de una existente, herendado las propiedades de la superclase. Se lleva a cabo mediante la adición de INHERITING FROM a la definición de la clase. CLASS <subclass> DEFINITION INHERITING FROM <superclass>.
Aunque se heredan (existen) todos los componentes, sólo los públicos y los protegidos de la superclase son visibles en la subclase.
- Especialización: la subclase hereda las principales características.
- Generalización: las superclase hereda las características de la subclase.
Existen 2 tipos de Herencia:
- Simple: Una clase puede tener varias subclases pero sólo 1 superclase
- Múltiple: Una clase puede heredar de varias superclases.
Herencia en cascada: abuelo-padre-hijo....-> Estruct. árbol cuyo grado de especialización aumenta a cada nivel jerárquico. El nodo raíz de todos los árboles de herencia es la clase OBJECT (predefinida vacía: sin atributos ni métodos)
ABSTRACT y FINAL en las sentencias METHODS y CLASS permiten definir métodos y clases abstractas y finales.
Método Abstracto se define en una clase abstracta y no puede implementarse allí, sino en una subclase. No se pueden instanciar las clases abstractas.
Un Método Final no puede redefinirse en una subclase. Las clases finales no pueden tener subclases: finalizan el árbol de herencia.
4. POLIMORFISMO
Tb. llamada Redefinición. Métodos con el mismo nombre pueden comportarse de manera distinta en clases diferentes.
Se puede usar la adición REDEFINITION en la sentencia METHODS para redefinir un método público o protegido dependiente de la instancia en una subclase para que realice una función más especializada: Ej: METHODS increment REDEFINITION.
Al redefinir un método no se puede modificar su interface, sólo su implementación. La implementación de la redefinición en la subclase oculta la implementación original en la superclase. Dentro de un método redefinido se puede usar la referencia SUPER-> para acceder al método de la clase "padre".
 
 
 
Sobre el autor
Publicación académica de David Campillo Martinez, en su ámbito de estudios para la Carrera Consultor ABAP.
David Campillo Martinez
Profesión: Administrador de Sistemas - España - Legajo: PC32Z
✒️Autor de: 56 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de David Campillo