lunes, 30 de mayo de 2016

HERENCIA Y POLIMORFISMO EN PROGRAMACIÓN

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


































No hay comentarios:

Publicar un comentario