Clases
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.