Herencia

¿Que es Herencia?

La herencia es especifica de la programación orientada a objetos.

Por lo general cuando en la vida real hablamos de herencia nos imaginamos que alguien murió y dejo sus vienes a otra persona que podrían ser sus hijos no obligatoria mente, esta herencia se llama herencia por derecho.


La herencia en programación es como la herencia genética.La herencia genética es el proceso por el cual la características de los padres se transmiten a sus hijos.


Es decir :


En programación herencia es la metodología para que una clase existente comparte sus atributos y métodos con una clase nueva, esta clase nueva vendría hacer una clase hija.



Ejemplo:

En este caso tendríamos tres clases una clase Persona que seria la clase Padre, y la clase Empresaria y Programador que vendría hacer clases hijas de Persona.

Secretaria y Programador hacer clases hijas de Persona comparten sus atributos.

Entonces cada Empresaria podrá tener nombre, edad, peso, altura lo mismo sucede con Programador al heredar de Persona le permite tener todos sus atributos como características propias.




Resultados :

Este es el resultado de usar herencia.
¿ Cual es la ventaja de usar Herencia?
Que nos permite utilizar los recursos(atributos y métodos) de clases ya existentes en nuevas clases las cuales con el solo hecho tener una clase padre es decir de heredar pueden utilizar todos las características de su Padre como propias.


Herencia Múltiple

Herencia múltiple es cuando una clase tiene mas de una clase padre.

Hasta ahora hemos dicho que una persona es Empresaria o Programador pero que pasaría si nuestra Empresaria también es  Programador o viceversa nuestro Programador también es  Empresario una forma de resolver esa problemática seria con herencia múltiple.

Dato importante:
No todos los lenguajes soportan herencia múltiple

Lenguaje que soportan herencia múltiple:

  • C++ 
  • CLOS 
  • Eiffel
  • Logtalk



Lenguaje que no soportan herencia múltiple:

Java, Nemerle, Delphi, C# y Objective-C no permiten herencia múltiple; esto hace que no haya ambigüedad. Sin embargo, permiten a las clases implementar múltiples interfaces.


Explicación y ejercicio:





Te recomiendo leer:
Programcion Orientada a Objtos



Comentarios

Entradas más populares de este blog

Abstracción

Programacion Orientada a Objetos