poo 3 herencia
DESCRIPTION
Concepto de HerenciaTRANSCRIPT
POO - HERENCIA
HERENCIAPOO-3
J. Mancilla M.
POO - HERENCIA
Definición de Herencia• Mediante la herencia el programador puede crear una clase
general que defina los rasgos comunes de un conjunto de términos relacionados. Esa clase puede ser heredada por otras clases más específicas, cada una de las cuales agregará aquellos rasgos específicos que las hace únicas.
• La aplicación del concepto de Herencia permite especializar clases en base a una clase de nivel superior.
• En otras palabras, la clase heredera es una especialización de su super clase.
• Una clase se define a partir de la otra, agregando su propia funcionalidad.
• Permite simplificar las estructuras complejas de clases.
2
POO - HERENCIA
Características• Algunas de las características de la herencia son:
• La idea básica es poder crear clases basadas en clases ya existentes.
• Cuando se hereda de una clase existente, se esta re-usando código (métodos y campos).
• Se Puede agregar métodos y variables para adaptar la clase a la nueva situación.
• Java también permite consultar por la estructura de una clase (cuáles son sus métodos y variables). Concepto de reflexión.
3
POO - HERENCIA
Características• La herencia la identificamos cuando encontramos la relación es-un
entre la nueva clase y la ya existente. Por ejemplo: Un estudiante es una persona.
• La clase ya existente se le llama superclase, clase base, o clase padre.
• A la nueva clase se le llama subclase, clase derivada, o clase hija.
4
Cuenta
CuentaAhorro CuentaCorriente
Super Clase
Derivada o hija
POO - HERENCIA
Tipos de Herencia• Existen dos tipos:
1.Herencia Simple:
En este tipo de herencia una clase solo puede tener un padre, por lo que la estructura de clases será un árbol jerárquico.
Es fácil de entender y manejar tanto por el programador como por el lenguaje.
Es limitada puesto que en el mundo real un objeto puede pertenecer a varias clases y sin embargo aquí esta situación no se puede modelar.
Cuenta
CuentaAhorro CuentaCorriente
POO - HERENCIA
Tipos de Herencia
2. Herencia Múltiple:
En este tipo de herencia una clase puede tener uno o varios padres, por lo que la estructura de clases es un grafo.
Es más realista y da al programador más libertad y mas posibilidades de reutilización de código.
Es mucho más difícil de utilizar por la posibilidad de ciclos y para los lenguajes de programación es muy costoso el permitirlo.
6
Auto
VoladorVehiculo
Av ion
POO - HERENCIA
La Herencia en Java• Las características de la herencia en Java son:
- Solo implementa Herencia simple
- Es una estructura jerárquica en árbol en donde en la raíz podemos encontrar la clase Object, de las que heredan todas las clases. Todas las clases tienen un padre
- Todos los objetos son “Object”.
- Java no permite que una subclase elimine un método o una variable de instancia aunque esta no la necesite.
•
7
POO - HERENCIA
La Herencia en JavaPara implementar herencia en java se utiliza la palabra reservada extends, la que se agrega al costado derecho del nombre de la clase en cáscara.
8
Para el diagrama: extends lo utilizara EmpleadoAsalariado y EmpleadoPorHoras y para almacenar datos en la estructura, estas ultimas clases deben considerar la palabra reservada super.
POO - HERENCIA
Acceso a un miembro de una clase• Las subclases heredan los miembros de la super-clase declarados
como public o protected.
• Las subclases heredan los miembros de la super-clase declarados sin especificador de acceso siempre que la subclase pertenezca al mismo paquete que la super clase. Este tipo de especificador es de tipo package
• Las subclases NO heredan los miembros de la super clase si la subclase declara otros con el mismo nombre. Se dice que el atributo en la subclase oculta al de la super-clase. En caso de los métodos ocurre exactamente lo mismo. En este caso se dice que la subclase sobreescribe (overrides) el método en la super clase.
9
POO - HERENCIA
Manejo de Constructores en la Herencia
• Debido a que una subclase hereda los atributos de la superclase, cuando construimos un objeto de la subclase debemos preocuparnos de entregar valores a los respectivos atributos heredados desde la superclase.
• En el proceso de construcción de un objeto de la subclase, se puede llamar al constructor de la clase desde donde se hereda, mediante la instrucción super.
10
POO - HERENCIA
HERENCIAPOO-3
Fin Presentacion.
Automóvil
VehículoMotorizado
CamiónAutomóvil
VehículoMotorizado
Camión
extends
super