✒️ABAP POO / La Herencia Por Jeferson Pena Curvelo
ABAP La Herencia

¿Qué es la herencia? Es la capacidad que tiene una clase de heredar los atributos y métodos de otra clase.
Denominemos Especialización a la relación en donde una clase (la Subclase) hereda todas las principales características de otra clase (la Superclase).
La Subclase puede agregar nuevos componentes (atributos y métodos) y reemplazar las implementaciones con los métodos heredados.
Si se invierte el punto de vista, es decir la superclase hereda las características de la subclase entonces se estará hablando de Generalización.
Las principales ventajas de la herencia son:
- Los componentes comunes solo existen una única vez en la superclase de modo que pueden ser mantenidos centralmente.
- Los componentes en las superclases están disponibles también en las subclases, esto evita las implementaciones redundantes.
Una de las principales ventajas que presenta el concepto de herencia es que permite la reusabilidad del código, es decir es posible reutilizar el código escrito para una clase adicionando al mismo código específico para cada una de las subclases de esta forma se estará ahorrando tiempo y esfuerzo para el desarrollo.
La Declaración de Herencia: Para declarar una relación de herencia se debe añadir la adición INHERITING FROM a la sentencia de definición de la clase:
CASS <subclass> DEFINITION INHERITING FROM <superclass>.
Si no se añade ninguna declaración de la subclase, esta contiene los mismos componentes que la superclase. De cualquier manera, 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.
Cada clase trabaja con sus propios componentes privados. Los métodos que una subclase hereda de una superclase usan los atributos privados de la superclase y no puede existir ningún componente privado de la subclase con el mismo nombre.
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 hereda de varias superclases.
En los objetos ABAP no existe el concepto de herencia múltiple. Sin embargo podemos utilizar interfaces para simular el tipo de herencia.
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 novel jerárquico que se añada.
A la inversa, las clases se hacen más generales hasta que se alcanza el nodo raíz del árbol de herencia.
El nodo raíz de todos los árboles de herencia en los objetos ABAP es la clase predefinida vacía OBJECT.
OBJECT es la más general de todas las clases posibles ya que no contiene ni atributos ni métodos. Cuando se define una nueva clase no se tiene que especificar explícitamente esta clase como superclase, esta relación está definido implícitamente.
Las adiciones ABSTRACT y FINAL en las sentencias METHOD y CLASS permiten definir métodos o clases abstractas y finales. Un método abstracto se define en una clase abstracta y no puede ser implementado en esa clase. Tiene que ser implementado en una subclase de la clase. Las clases abstractas no pueden ser instanciadas. Un método final no puede ser redefinido en una subclase. Las clases finales no pueden tener subclase, son las que finalizan el árbol de herencia.
 
 
 
Sobre el autor
Publicación académica de Jeferson Jos Pena Curvelo, en su ámbito de estudios para el Master ABAP Orientado a Objetos.
Jeferson Jos Pena Curvelo
Chile - Legajo: PD49W
✒️Autor de: 180 Publicaciones Académicas
🎓Egresado de los módulos:
- Master ABAP Orientado a Objetos
- Master ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
























