6. Herencia

Herencia.(informativo) 

No veremos este tema en profundidad, pero es posible diseñar nuevas clases basándose en clases ya existentes. 

En C++ esto se llama derivación de clases, y en POO herencia.

Cuando se deriva una clase de otra, normalmente se añadirán nuevos métodos y datos

Es posible que algunos de estos métodos o datos de la clase original no sean válidos, en ese caso pueden ser enmascarados en la nueva clase o simplemente eliminados. El conjunto de datos y métodos que sobreviven, es lo que se conoce como herencia.



Una  vez  que  una  clase  se  ha  escrito  creado,  depurado  y  utilizado,  se  puede  difundir entre   otros   programadores   para   que   pueden   reutilizarla   en   sus programas.  

Un programador  puede  tomar  la  clase  existente,  y  sin  modificarla  añadir  características adicionales a la misma. Estas operaciones se realizan por derivación de una clase nueva a partir de una clase ya existente.

La  reutilización  del  software  es  un  término  muy  importante,  es similar a la utilización del hardware mediante circuitos integrados. 

Las clases que heredan de clases base se denominan derivadas, estas a su vez pueden ser clases bases para otras clases derivadas. Se establece así una clasificación jerárquica, similar a la existente en Biología con los animales y las plantas

Este tema no es parte de la materia.

Mensaje

El mensaje es el modo en que se comunican los objetos entre si. En C++, un mensaje no es más que una llamada a una función de un determinado objeto. Cuando llamemos a una función de un objeto, muy a menudo diremos que estamos enviando un mensaje a ese objeto.

En este sentido, mensaje es el término adecuado cuando hablamos de programación orientada a objetos en general.

Polimorfismo (informativo) 

En la POO el polimorfismo se refiere al hecho de que una misma operación puede tener diferente  comportamiento  en  diferentes  objetos.  

Analogía: Imaginemos un objeto que le digo que emita un sonido, el objeto gato va a hacer miau, y el objeto perro guau.

En programación orientada a objetos, el polimorfismo se refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales ( emitir sonido)  a objetos de tipos distintos (perro y gato) .

Aunque el mensaje sea el mismo, diferentes objetos pueden responder a él de manera única y específica. Esta característica permite que, sin alterar ni tocar el código existente, se puedan incorporar nuevos comportamientos y funciones (es decir la interfaz sintáctica se mantiene inalterada pero cambia el comportamiento en función de qué objeto estamos usando en cada momento). El único requisito es que los objetos deben ser capaces de responder al mensaje que se les envía, garantizando así una flexibilidad y extensibilidad en el diseño del software.

En  otras  palabras,  diferentes  objetos reaccionan al mismo mensaje de manera diferente.