HERENCIA



En esta ocasión vamos a profundizar un poco (desde el enfoque de programación, no teórico) en uno de los principales conceptos de programación orientada a objetos en java...............el concepto de Herencia, vamos a realizar un ejemplo practico para verificar su funcionamiento y aplicación en el desarrollo de software.

Como se mencionó en la entrada anterior, básicamente mediante este concepto podemos obtener las características de una clase padre o de una jerarquía mayor dependiendo de nuestro árbol de herencia, en java definimos esta jerarquía mediante la palabra extends seguido del nombre de la clase a la que vamos a heredar, también se debe tener claro que solo se puede heredar de una sola clase pues el lenguaje no permite la Herencia múltiple (En Java por defecto todas las clases heredan de la clase Object, es decir, esta es la clase Padre de todas las clases en Java).

Requisitos


Lo único que necesitamos para hacer el ejemplo practico es un entorno de desarrollo, conocer los conceptos de POO (vistos en la entrada anterior) y ganas de continuar :P para este caso usaremos el IDE Eclipse...........Empecemos.



El 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 clasificarlos, en este caso trabajaremos con vehículos acuáticos y aéreos.

Teniendo como punto de partida la información anterior podemos empezar a definir nuestras clases, vamos a trabajar con vehículos acuáticos y vehículos aéreos, entonces......... cual es el factor común de estos 2 tipos?..............................................

El factor común es que sin importar si es un avión o un barco, estamos hablando de vehículos, y ambos pueden compartir características comunes por esta razón la Clase principal de nuestro sistema sera la clase Vehiculo.

Partiendo de lo anterior podemos profundizar aun mas en nuestro árbol de herencia, sabemos que un barco o un avión son vehículos, pero será que esta información es suficiente???.......... sería correcto decir que ¿un barco es igual a un avión porque ambos son vehículos?..........definitivamente NO, ya que si bien descienden del mismo concepto de vehículo ambos tienen características propias que los diferencian, aquí es donde tenemos que pensar de forma general para poder definir un correcto árbol de herencia, por eso podemos decir que un barco además de descender de un vehículo, también desciende del tipo de vehículos Acuáticos los cuales tienen un conjunto de características comunes para cualquier vehículo acuático (sin olvidar que cada vehículo acuático puede tener sus características propias) y de la misma forma un avión desciende del tipo de vehículos Aéreos (con la misma lógica del anterior)............tenemos así nuestras clases Acuatico y Aereo que a su vez descienden de la clase Vehiculo, y son padres de cualquier vehículo en su jerarquía.







Como vemos, la Clase Padre es Vehiculo, la cual tiene como hijas a las clasesAcuatico Aereo, estas a su vez son clases Padre de BarcoVeleroAvion yHelicoptero que a la vez son nietas de Vehiculo...Simple o ¿no?

Con esto ya tenemos una jerarquía de herencia definida, esto quiere decir que por ejemplo la clase Avion puede usar el método volar() de la clase Aereo, así como también usar el método transportar() de la clase Vehiculo, pues se encuentra en el mismo árbol de herencia, sin embargo no puede usar el método navegar()de la clase Acuatico, ya que no es de tipo Acuatico.




EJEMPLO DE COMO SE HEREDA UNA CLASE








No hay comentarios:

Publicar un comentario