Sesion 1
Sesion 1
Sesion 1
SESIÓN 04:
Relación de Herencia
Figura
Empleado
+obtenerDetalles() :
String
Administrador
Ingeniero
Secretaria
+departamento : String
Director
+adjudicarVehiculo : double
+incrementarConcesion()
Herencia
• Es una propiedad que permite que los objetos sean
creados a partir de otros ya existentes, obteniendo
características (métodos y atributos) similares a los ya
existentes. Es la relación entre una clase general y otra
clase mas especifica.
• Es un mecanismo que nos permite crear clases
derivadas a partir de una clase base.
• Permite compartir automáticamente métodos y datos
entre clases subclases y objetos.
• Ejemplo: Si declaramos una clase párrafo derivada de
una clase texto, todos los métodos y variables
asociadas con la clase texto, son automáticamente
heredados por la subclase párrafo.
Herencia
• Se trata de crear una clase hija - subclase - que
hereda de la clase padre - superclase - todos sus
atributos, constructores, getters, setters y
métodos que pueden ser modificados.
• La subclase puede tener sus propios atributos y
métodos.
• Permite la reusabilidad del código.
• En Java se implementa mediante: extends
Herencia - Tipos
▫ Simple
▫ Múltiple, java no las soporta.
Herencia
A
A es un ascendiente o superclase de B. Si la herencia
entre A y B es directa decimos que A es la clase padre de B
Polygon
#width
#height
+set_values()
Rectangle Triangle
+area() +area()
7
Constructores y Herencia
8
Ejemplo de super
Redefinir método de
La clase padre
Redefinir funciones miembros de la clase padre
class Persona {
private String nombre;
private int edad;
...................
public String Datos( ) { return nombre + edad; }
public void setEdad(int e) { edad = e; }
}
class Alumno extends Persona {
private int curso;
private String nivelAcademico;
...................
public String Datos( ) {
return super.Datos() + curso + nivelAcademico;
}
public void setCurso(int c) { curso = c; }
}
Ejemplo: Construya la subclase Profesor heredada
de la clase Persona
Herencia- Ejemplo
Herencia- Ejemplo
● Especialización
● Extensión
● Especificación
● Construcción
Situaciones en la que se aplica
herencia
Especialización: Dado un concepto B(vehiculo) y otro concepto A (coche)
que representa una especialización de B, entonces puede establecerse una
relación de herencia entre las clases de objetos que representan a A y B.
● Extensión: una clase puede servir para extender
la funcionalidad de una superclase sin que represente
necesariamente un concepto más específico.
● Especificación: Una superclase puede servir para
especificar la funcionalidad mínima común de un
conjunto de descendientes.
Situaciones en las que se aplica la Herencia
Tipos de Herencia
Herencia simple:
➢ Muy fácil de entender y manejar tanto por el
lenguaje como por el programador.
➢ 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.
➢ 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”
Tipos de Herencia
• Herencia múltiple:
➢ Es más realista y da al programador más libertad y mas
posibilidades de reutilización de código.
Estudiante
Profesor Nombre...............Heredado
Nombre.................. Heredado Edad.....................Heredado
Edad.........................Heredado Id..........................Definido
Salario......................Definido Visualizar().........Redefinido
Visualizar()..............Heredado