¿Qué es y cómo se utiliza la herencia?
En programación orientada a objetos, la herencia es el mecanismo más conocido para alcanzar algunos de los objetivos más preciados en el desarrollo de software como lo son la reutilización y la extensibilidad.
A través de ella, los diseñadores pueden crear nuevas clases partiendo de una clase o de una jerarquía de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada.
La herencia facilita la creación de objetos a partir de otros ya existentes e implica que una subclase obtenga todo el comportamiento (métodos) y eventualmente los atributos (variables) de su superclase.
Es la relación entre una clase general y otra clase más específica. Por ejemplo, si declaramos una clase COCHE derivada de una clase VEHICULO, todos los métodos y variables asociadas con la clase vehículo, son automáticamente heredados por la subclase coche.
La herencia es uno de los mecanismos de los lenguajes de programación orientada a objetos basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad.
La clase de la que se hereda se suele denominar clase base, clase padre o superclase.
Tenemos las siguientes ventajas y desventajas de la herencia:
Ventajas de la herencia
– Ayuda a los programadores a ahorrar código y tiempo, ya que la clase padre ha sido implementada y verificada con anterioridad, restando solo referenciar desde la clase derivada a la clase base.
– Los objetos pueden ser construidos a partir de otros similares. Para ello es necesario que exista una clase base, que incluso puede formar parte de una jerarquía de clases más amplia.
– La clase derivada hereda el comportamiento y los atributos de la clase base, y es común que se le añada su propio comportamiento o que modifique lo heredado.
– Toda clase puede servir como clase base para crear otras.
Desventajas de la herencia
– Si la jerarquía de clases es demasiado compleja, el programador puede tener problemas para comprender el funcionamiento de un programa.
– 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.
En este artículo crearemos en un programa ejecutable, la clase SISTEMA con el atributo ARQUITECTURA de tipo STRING en la sección pública y le asignamos el valor 64BITS. En la misma sección creamos el método OBTENER_ARQ con un parámetro de salida que devuelve el valor del atributo ARQUITECTURA. A continuación, creamos la clase LINUX que hereda de la clase SISTEMA y en el evento START-OF-SELECTION creamos un objeto referenciado a la clase LINUX.
Por último, podemos hacernos una pregunta ¿Se puede llamar al método de la clase superior con la referencia del objeto de la clase hija?
Sí, se puede llamar al método de la clase superior SISTEMA con la referencia del objeto de la clase hija LINUX.