6. Herencia

Veremos que 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

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

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

Por  ejemplo,  supongamos  un  número  de  figuras  geométricas  que  responden  todas  al mensaje  Dibujar. 

Cada  objeto  reacciona  a  este  mensaje  visualizando  su  figura  en  la pantalla. Obviamente, el mecanismo real para dibujar los objetos difiere de una figura a otra, pero todas las figuras realizan esta tarea en respuesta al mismo mensaje.