Jerarquía y Herencia en la Programación Orientada a Objetos

En la Jerarquía se crean organizaciones de elementos en distintos niveles. Esto suele suceder más a menudo en la vida real y esto se encuentra inherente en cada sistema.

Las clases pueden ordenarse y clasificarse en la programación orientada a objetos a esto se le conoce como Jerarquía. Esta lección se enfoca en las dos jerarquías más importantes.

  1. La relación de clases
  2. Relación de Objetos

La primera de estas es a lo que comúnmente se denomina Herencia, la herencia se clasifica en dos tipos que son: Herencia Simple y Herencia Múltiple.

¿Qué es Herencia?

La herencia permite crear una nueva clase a partir de una clase existente, esto quiere decir que la clase nueva (hija) hereda todos los atributos y métodos de la clase principal (padre) siempre y cuando el nivel de acceso lo permita.

La herencia tiene muchas ventajas una de ellas es el reutilizar código ya que no necesitas escribir de nuevo el código si no, solamente heredar de la clase padre.

La herencia es la que permite crear una estructura jerárquica de clases más especializadas.

Herencia Simple

Esta es la relación de clases más importante, es esencial en los sistemas orientados a objetos ya que permite definir la relación de clases y brindar la estructura del comportamiento en una nueva clase.

Esta se puede representar como una jerarquía de clases, como una vista en un árbol ya que está comienza con la superclase que es quien contiene la abstracción principal del objeto y de allí se derivan varias clases con el fin de lograr ciertas características especiales en el objeto y es así como se descubre que la herencia implica una relación de especialización y denota una relación de << es un >> la siguiente imagen puede aclarar aún más el concepto.

http://prntscr.com/ejp44s

En la imagen podemos observar como la Clase Animal es la superclase pero de ella heredan diferentes clases entre ellas Perro y Gato podemos decir entonces que Perro <es un> Animal o Gato <es un> Animal.

PHP

class Animal
{
 
    public function eat()
    {
       echo 'mmmm..';
    }
}
 
class Dog extends Animal
{
 
    public function say()
    {
      echo 'Guau, Guau';
    }
 
}
 
$dog= new Dog();
$dog->say(); // Guau, Guau;
$dog->eat(); // mmm..;

 

Herencia Múltiple

Se refiere a la característica en la que una clase puede heredar comportamientos de una o más superclases, hay que tener en cuenta que esta característica no la tienen todos los lenguajes.

Como vemos en la imagen la clase  Animal y Mutante en este ejemplo son las superclases y la clase Perro Mutante hereda de ambas aquí se puede observar la herencia múltiple en la relación que tienen las superclases con clase Perro Mutante, Un perro mutante es un animal con alguna mutación necesita heredar de ambas clases a este concepto es al que se llama Herencia Múltiple.

C++ (Soporta Herencia Múltiple)

#include "stdafx.h"
#include "string"
#include "iostream"
using namespace std;

class Animal
{
    private: string Name;

    public: string eat()
    {
        return ("mmm...");
    }

};

class Mutant
{
    public: string say()
    {
        return ("I am Mutant");
    }
};

class DogMutant : public Animal, public Mutant
{

    public: string sayDog()
    {
        return ("I am Mutant Dog");
    }
};

int main()
{
    DogMutant dog;
    cout <<dog.sayDog()<<"\n";  //I am Mutant Dog
    cout << dog.say() << "\n";  //I am Mutant
    cout << dog.eat();          //mmm...

    getchar();
    return 0;
}

 

La Relación de Objetos

Esta relación se enfoca en la abstracción de la vida real de un objeto que denota el << parte de >>, esto permite hablar de niveles de abstracción altos y bajos, los cuales indican la dependencia de una clase a otra.

Una clase tiene un nivel más alto de abstracción que cualquiera de las clases que dependen de ella.

Por lo que se puede decir qué:

Una llanta es << parte de >> un carro.

pero también es << parte de >> una moto, un camión, etc.

 

No olvides dejar tus comentarios, voy a leerlos y contestar lo más rápido posible.

Comparte este artículo

Entra en la discusión y deja tu comentario

Veces