📘ABAP - Herencia
Definición de Herencia
Una de las propiedades más importantes que presenta la Programación Orientada a Objetos (POO) es la Herencia.
La herencia es la capacidad que tiene una clase de heredar las propiedades y métodos de otra clase.
La herencia nos permite crear una nueva clase a partir de una existente, heredando la nueva clase sus propiedades y atributos.
Existen dos tipos de herencia:
- Herencia Simple: en donde una clase sólo puede heredar de una clase base y de ninguna otra.
- Herencia Múltiple: en donde una clase puede heredar las características de varias clases base, es decir, puede tener varios padres. En este aspecto hay discrepancias entre los diseñadores de lenguajes. Algunos de ellos han preferido no admitir la herencia múltiple debido a que los potenciales conflictos entre métodos y variables con igual nombre, y eventualmente con comportamientos diferentes crea un desajuste cognitivo que va en contra de los principio de la programación orientada a objetos. Por ello, la mayoría de los lenguajes orientados a objetos admite herencia simple. En contraste, algunos pocos lenguajes admiten herencia múltiple, entre ellos: C++, Python, Eiffel, mientras que Smalltalk, Java, Ada y C# sólo permiten herencia simple. ABAP no admite herencia múltiple.
En contrapartida a sus ventajas, la herencia también presenta ciertas desventajas tales como:
Si la jerarquía de clases es demasiado compleja, el programador puede tener problemas para comprender el funcionamiento de un programa.
Además puede volverse más complejo detectar y resolver errores de programación, por ejemplo al modificar una clase padre que afecta el funcionamiento de las subclases.
Otro problema es que las subclases se deben definir en código, por lo que los usuarios del programa no puede definir subclases nuevas. Otros patrones de diseño permiten que los usuarios puedan definir variantes de una entidad en tiempo de ejecución.