¿ QUE ES UNA HERENCIA EN PROGRAMACIÓN ?
La herencia es una propiedad de
algunos lenguajes de programación como Java que permite que un
objeto sea creado a partir de otro existente, obteniendo
características como atributos y métodos, lo que nos permite crear objetos
derivados a partir de objetos bases. Simplemente se crea una clase con
funciones bases y luego se crea otra clase más (llamada clase hija) que herede
de la otra clase (llamada clase padre) y que además agregue otros
atributos y métodos que la definan y la hagan una especialización de su
clase padre.
EJEMPLO
Conociendo
el concepto de clases y objetos vamos a asumir que necesitamos construir una
aplicación sobre los diferentes tipos de vehículos existentes, pero para esto
necesitamos clasificaros, en este caso trabajaremos con vehículos acuáticos y
aéreos.

Como vemos, la Clase Padre es Vehículo,
la cual tiene como hijas a las clases Acuático y Aéreo,
estas a su vez son clases Padre de Barco, Velero, Avión y
Helicóptero que a la vez son nietas de Vehículo.
Con esto ya tenemos una jerarquía
de herencia definida, esto quiere decir que por ejemplo la clase Avión puede
usar el método volar() de la clase Aéreo, así como también usar
el método transportar() de la clase Vehículo, pues se encuentra
en el mismo árbol de herencia, sin embargo no puede usar el método navegar() de
la clase Acuático, ya que no es de tipo Acuático.
Ahora explicare el concepto en java
Como vemos seguido del nombre de
la clase se tiene la palabra extends la cual indica que se extiende o
hereda de la clase definida, así mismo todas las clases tienen al menos un
método que representa la característica propia de la clase, para las clases
hijas ese método define el proceso que solo ellas pueden realizar, para las
clases padre, ese método define el proceso que es común o general para las
clases hijas.
¿ QUE ES EL POLIMORFISMO EN PROGRAMACIÓN ?
En programación orientada a
objetos, el polimorfismo se refiere a la propiedad por la que es
posible enviar mensajes sintácticamente iguales a objetos de tipos distintos.
El único requisito que deben cumplir los objetos que se utilizan de manera
polimórfica es saber responder al mensaje que se les envía.
La apariencia del código puede
ser muy diferente dependiendo del lenguaje que se utilice, más allá de las
obvias diferencias sintácticas.
Por ejemplo, en un lenguaje de
programación que cuenta con un sistema de tipos dinámico (en los que
las variables pueden contener datos de cualquier tipo u objetos de cualquier
clase)
EJEMPLO
En el siguiente ejemplo hacemos uso del lenguaje C++ para
ilustrar el polimorfismo. Se observa a la vez el uso de las funciones virtuales
puras, como se les conoce en C++, estas funciones constituyen una interfaz más
consistente cuando se trabaja con una jerarquía de clases, puesto que hacen
posible el enlace durante la ejecución. Sin embargo como se verá, para que el
polimorfismo funcione no es una condición obligatoria que todas las funciones
en la clase base sean declaradas como virtuales.



