lunes, 14 de febrero de 2011

Herencia y polimorfismo: modularidad y reutilización de código

Actividades de semana 3.

¿Qué es herencia?

Según Timothy A. Budd en su libro An Introduction to Object-Oriented Programming, al principio que señala que el conocimiento acerca de una categoría más general también es aplicable a una categoría más específica es llamado herencia.

Esto quiere decir que si conocemos algún objeto que pertenece a alguna categoría, cuyo conocimiento o propiedades también lo posee una clase más general, entonces el objeto de la categoría más específica hereda de la categoría más general.

Un ejemplo es el monoclonius, un dinosaurio herbívoro de la familia Ceratopsidae que poseía un cuerno mediano [1], sabemos que es un herbívoro pero aún así sigue siendo un dinosaurio, tiene 4 patas y vivió en el cretaceo como muchos otros, aquí la clase general a la que pertenece son todos los dinosaurios que vivieron en esa época mientras que la categoría ó clase específica es su mismo género.



Ejemplos más comunes son los vehículos, existen muchos objetos de categorías específicas, por nombrar algunos, de dos llantas, de tres llantas, sin llantas, impulsados con gasolina, impulsados con hidrógeno, impulsados con energía solar, que también andan bajo el agua, que no andan bajo el agua, que vuelan, con gran protección, poco seguros, para muchos pasajeros, para pasajeros ó tripulantes sólo humanos, etc, todos estos caben perfectamente en la categoría general de "vehículos que sirven para transportar".



Así como estos ejemplos, existen muchos otros más que se adaptan al concepto de herencia, de hecho es más probable batallar para no encontrarse con uno. Quizás esto se debe a que la eficiencia al especializar ó mutar objetos y especies, a partir de sus contrapartes más generalizadas, es una ganancia gigantesca, y los humanos también lo reconocen al crear y usar la herencia en paradigmas como la programación orientada a objetos.

La programación orientada a objetos brinda la posibilidad de crear categorías ó clases de tal manera que nos permita crear código para acciones específicas rápidamente, es decir, usando la herencia sin llegar a la necesidad de reescribir gran parte del mismo otra vez, además la capacidad de herencia da lugar a una mayor modularidad, factor clave en la creación de programas grandes ó complejos.

¿Qué es el polimorfismo?

"La habilidad para aparecer en muchas formas", dicho de otro manera se refiere a la habilidad del lenguaje para procesar objetos de manera diferente entre ellos según el tipo de dato que son o su clase, como ejemplo real se refiere a la habilidad del lenguaje para sobreescribir los métodos de los objetos de clases o categorías heredadas de tal manera que respondan diferente de sus contrapartes más generales ante la petición de una acción, es decir, objetos que son de la misma clase pueden comportarse de manera diferente ante las mismas peticiones.

Un ejemplo rápido son los leopardos, los tiburones y los cocodrilos, todos ellos pertenecen a la clase animales, pero si se les pudiera dar órdenes y ellos obedecieran, entonces cuando se les pida que cazen (la misma petición) lo realizarán de manera muy específica según su tipo (ó en términos de p.o.o. según cómo tengan sobreescritos sus métodos).



Bibliografía.
[1] http://www.prehistory.com/monoclonius.htmhttp://www.worldlingo.com/ma/enwiki/es/Monoclonius

No hay comentarios:

Publicar un comentario