✒️ABAP Las propiedades de la programación orientada a objetos
ABAP Las propiedades de la programación orientada a objetos
4° Propiedades de la Programación Orientada a Objetos
1- Las Propiedades de la POO
- Encapsulación.
- Herencia.
- Poliformismo.
2- Encapsulación (u Ocultamiento)
Se refiere a que todos los Objetos restringen la Visibilidad de sus recursos (Atributos y Métodos) al resto de los Usuarios.
- Las Secciones Pública, Protegida y Privada son la base de la Encapsulación.
- Cada Objeto posee una Interfase que determina la manera de interactuar con él.
- La Implementación del Objeto (su interior) es Encapsulada, o sea que desde fuera es invisible. Sólo se usa.
- Como los Componentes Públicos de las Clases Globales no pueden ser cambiados una vez que se las liberó, se debe tener especial atención en su uso.
- Los Atributos Públicos son visibles externamente y forman parte de la Interfase entre un Objeto y sus Usuarios.
- Si se quiere encapsular completamente el Estado de un Objeto, no se tiene que declarar ningún Atributos Públicos.
- Aparte se puede proteger también de los cambios usando la adición READ-ONLY.
3- 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 sus Propiedades.
- Se realiza añadiendo la adición INHERITING FROM en la definición de la nueva Clase.
- La Clase original se conoce como la Superclase.
- Si no se añade ninguna declaración a la Subclase, contendrá los mismos Componentes de la Superclase.
- Sólo los Componentes Públicos y Protegidos de la Superclase son visibles en la Subclase.
- Aunque los Componentes Privados de la Superclase existen en la Subclase, no son visibles para esta.
- Se pueden declarar Componentes Privados en una Subclase con igual nombre que de la Superclase, ya que cada Clase trabaja con sus propios Componentes Privados.
- Los Métodos que una Subclase hereda usan los Atributos Privados de la Superclase y ningún Componente Privado de la Subclase con el mismo nombre.
AUDIO:
- Especialización es la relación en donde la Subclase hereda las principales características de la Superclase.
- Generalización es cuando una Superclase hereda las características de la Subclase.
- Si la Superclase no tiene una parte Privada, la Subclase es una replica exacta de la Superclase.
- Podemos añadir nuevos Componentes a la Subclase, convirtiéndola en una versión especializada de la Superclase.
- Si la Subclase es a su vez una Superclase de otras Clases, se introduce un nuevo nivel de Especialización.
- Tipos de Herencia
- Simple: Una Superclase puede tener mas de una Subclase, pero puede ser Subclase de una sola Superclase.
- Múltiple: Una Clase hereda de varias Superclases.
- Particularidades de las Herencias
- Cuando una Clase hereda de una Superclase que a su vez hereda de otra Superclase, se forma una estructura en la cual el Grado de Especialización aumenta con cada Nivel Jerárquico que se añada, mientras que se hacen más Generales hasta que se alcanza el Nodo Raíz del Árbol de Herencia.
- El Nodo Raiz de todos los Árboles de Herencia en los Objetos ABAP, es la Clase Predefinida vacía OBJECT, la cual está definida implícitamente y no contiene ni Atributos ni Métodos.
- Dentro de un Árbol de Herencia, dos Nodos adyacentes son Superclase y Subclase 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.
- Adiciones en las sentencias Method y Class
- ABSTRACT
- Un Método Abstracto se define en una Clase Abstracta y no puede ser implementado en esa Clase, debe ser implementado en una Subclase de la Clase.
- Las Clases Abstractas no pueden ser Instanciadas.
- FINAL
- 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.
4- Polimorfismo (o Redefinición)
- Significa que Métodos que se llaman exactamente igual, pueden comportarse diferentes en Clases distintas.
- Todas las Subclases contienen los Componentes de las Clases existentes entre ellas mismas y el Nodo Raiz.
- La Visibilidad de un Componente no puede ser cambiada nunca.
- En la sentencia METHODS se puede usar la adición REDEFINITION para redefinir un Método Público o ProtegidoDependiente de Instancia en una Subclase y hacer que realice una función más especializada.
- Cuando se redefine un Método no se puede cambiar su Interface. Mantiene el Nombre y la Interface de Parámetros, pero tiene una nueva Implementación.
- 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 una 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. Es la aplicación particular a la referencia a sí mismo me->.
- Ejemplo Particular
- La Superclase tiene un Método M1 (con un CALL METHOD [ME->] M2) y un Método M2
- La Subclase tiene un Método M1 y un Método M2 Redefinido
- - La llamada a M1 desde una Instancia de la Superclase hará que el M2 Original sea llamado.
- - La llamada a M1 desde una Instancia de la Subclase hará que el M2 Redefinido sea llamado.
- Dentro de un Método redefinido, se puede usar la referencia SUPER-> para acceder al Método "oculto", lo que permite usar la funcionalidad del Método de la Superclase sin tener que codificarla en la Subclase.
 
 
 
Sobre el autor
Publicación académica de Victor Norberto Levi, en su ámbito de estudios para la Carrera Consultor ABAP.
Victor Norberto Levi
Profesión: Analista Programador - Argentina - Legajo: VT17H
✒️Autor de: 111 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Victor Levi