17
Programación O.O. Definición de Herencia (Para que Sirve) Pilares de POO Tipos de Herencia Ejemplos Ejercicios en Clase

Poo en java herencia

Embed Size (px)

Citation preview

Page 1: Poo en java   herencia

Programación O.O.

Definición de Herencia (Para que Sirve)

Pilares de POO

Tipos de Herencia

Ejemplos

Ejercicios en Clase

Page 2: Poo en java   herencia

Herencia – Pilar de la POO

Definición

Una de las características más complejas de Java es la

reutilización de código. Pero, para ser revolucionario, se

debe poder hacer más que copias de código y cambios.

Como todo en Java, el problema se resuelve con las

clases. Para reusar código creamos nuevas clases pero,

en lugar de partir de cero partimos de clases,

relacionadas con nuestra clase, que han sido ya creadas

y depuradas.

Page 3: Poo en java   herencia

Herencia – Pilar de la POO

Definición

El truco está en usar las clases sin ensuciar el códigoexistente, y para esto existen dos formas (Sencilla yCompleja):

Composición

Herencia

Herencia : La herencia es un mecanismo que permite ladefinición de una clase a partir de la definición de otraya existente. La herencia permite compartirautomáticamente métodos y datos entre clases, subclasesy objetos.

Page 4: Poo en java   herencia

Herencia – Pilar de la POO

Definición

Tipos de Herencia

Herencia Simple : Una clase solo puede tener un padre o

heredar de una clase padre.

Herencia Múltiple: Una clase puede heredar de varias

clases Padre.

Dinero

Moneda

Padre Madre

Hijo

Page 5: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

El ejemplo que proponemos es un caso en el que vamos asimular el comportamiento que tendrían los diferentesintegrantes de la selección Española de futbol; tanto losFutbolistas como el cuerpo técnico (Entrenadores, Masajistas,etc…). Para simular este comportamiento vamos a definir tresclases que van a representaran a objetos Futbolista,Entrenador y Masajista. De cada unos de ellos vamos anecesitar algunos datos que reflejaremos en los atributos y unaserie de acciones que reflejaremos en sus métodos. Estosatributos y métodos los mostramos en el siguiente diagramade clases:

Page 6: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

Que tienen en común estas clases?

Page 7: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

Que tienen en común estas clases?

Page 8: Poo en java   herencia

Herencia – Pilar de la POO

Que tienen en común estas clases?

Page 9: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos Herencia Simple

Lo que podemos ver en este punto es que estamos escribiendomucho código repetido ya que las tres clases tienen métodos yatributos comunes, de ahí y como veremos enseguida, decimosque la herencia consiste en “sacar factor común” para no escribircódigo de más, por tanto lo que haremos será crearnos una clasecon el “código que es común a las tres clases” (a esta clase se ledenomina en la herencia como “Clase Padre o SuperClase”) y elcódigo que es especifico de cada clase, lo dejaremos en ella,siendo denominadas estas clases como “Clases Hijas”, lascuales heredan de la clase padre todos los atributos y métodospúblicos o protegidos. Es muy importante decir que las claseshijas no van a heredar nunca los atributos y métodos privados de laclase padre, así que mucho cuidado con esto.

Page 10: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

Page 11: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

Page 12: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

Page 13: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

extends: Esta palabra reservada, indica a la clase hija cual va a ser su clasepadre, es decir que por ejemplo en la clase Futbolista al poner “public classFutbolista extends SeleccionFutbol” le estamos indicando a la clase ‘Futbolista’que su clase padre es la clase ‘SeleccionFutbol’ o dicho de otra manera paraque se entienda mejor, al poner esto estamos haciendo un “copy-pastedinámico” diciendo a la clase ‘Futbolista’ que se ‘copie’ todos los atributos ymétodos públicos o protegidos de la clase ‘SeleccionFutbol’.

protected: sirve para indicar un tipo de visibilidad de los atributos ymétodos de la clase padre y significa que cuando un atributo es ‘protected’o protegido, solo es visible ese atributo o método desde una de las claseshijas y no desde otra clase.

super: sirve para llamar al constructor de la clase padre. Quizás en el códigoque hemos puesto no se ha visto muy bien, pero a continuación lo mostramosde formas más clara, viendo el constructor de los objetos pasándole losatributos.

Page 14: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

Page 15: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

Page 16: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple

Page 17: Poo en java   herencia

Herencia – Pilar de la POO

Ejemplos

Herencia Simple