2 Herencia
Es la derivación de una clase a partir de otra
existente.
El objetivo es la reutilización del software
desarrollado.
POO en Java IV: Herencia
(Parte 1)
Franco Guidi Polanco
Escuela de Ingeniería Industrial
Pontificia Universidad Católica de Valparaíso, Chile
Herencia
fguidi@ucv.cl
Actualización: 22 de Agosto de 2011
Franco Guidi Polanco
Súperclases y subclases
Súperclases ysubclases
La subclases heredan propiedades de su súperclase.
Una subclase, respecto de su súperclase:
La clase de la cual se deriva otra clase se denomina
clase base, súperclase o clase padre.
Una clase derivada de una súperclase recibe también
el nombre de subclase o clase hija.
Vehículo
Súperclase
Clase base
Clase padre
Camión
Subclase
Clase derivada
Clase hija
Agrega nuevaspropiedades
Modifica propiedades heredadas.
Vehículo
Camión
La herencia aplica en relaciones de naturaleza B es un
tipo de A
Franco Guidi Polanco
2
3
Franco Guidi Polanco
Patente
Marca
----Avanza
Patente
Marca
Carga máxima
----Avanza
Activa tolva
4
Herencia simple
Herencia múltiple
Una clase es subclase de una única súperclase.
Una clase es subclase de más de una súperclase.Vehículos
terrestres
Vehículos
acuáticos
Vehículo
Vehículos
anfibios
Camión
Java no soporta la herencia múltiple.
Franco Guidi Polanco
5
Jerarquías de Herencia
+ Universidad
+ set y get Universidad
Alumno
pregrado
+ Carrera
+ set y get Carrera
Franco Guidi Polanco
Alumno
6
Ejemplo (1/2)
La herencia organiza clases bases y derivadas en
jerarquías de clases.
Persona
Franco GuidiPolanco
Determinar si en las siguientes situaciones existe una
relación de herencia entre las clases (indicadas en negrita):
Rut, nombre
set y get nombre
Profesor
Alumno + Tesis
magíster + set y get Tesis
+ Especialidad
+ set y get Especialidad
Profesor + Horas
+ set y get Horas
hora
Caso 1
Caso 2
Caso 3
Todo
Electrodoméstico se
enciende y apaga. El
Horno microondas
además abre y cierrasu
puerta.
Los Bienes raíces
tienen un Rol de
identificación. Una
Casa tiene también un
Jefe de hogar y un
Negocio tiene una
Patente comercial
Un Camión tiene
Patente. Un Conductor
tiene un camión
conducido.
Electrodoméstico
Horno Microondas
7
Franco Guidi Polanco
Bien Raíz
Casa
Negocio
X
8
Ejemplo (2/2)
Implementación de jerarquías de herencia
Determinar si en las siguientessituaciones existe una
relación de herencia entre las clases (indicadas en negrita):
Caso 4
Caso 5
Los Archivos
Multimediales pueden
ser Imágenes o
Música. Las imágenes
pueden ser a Color o
Blanco y Negro.
Un Avión tiene
Fuselaje, Alas y
Motores.
Multimedia
Música
Imagen
Color
Franco Guidi Polanco
B/N
Para crear una subclase a partir de una superclase, en
Java la subclase debe declararse:Caso 6
Una Gaviota vuela.
Una Abeja vuela y
además tiene aguijón.
public class NombreSubclase extends NombreSuperclase
Ejemplo:
X X
Persona
Alumno
9
Franco Guidi Polanco
Implementación de jerarquías de herencia:
ejemplo
Persona
Alumno
public class Persona {
public class Alumno extends Persona {
public String rut;
public String nombre;
Operaciones:
-set y get RUT
- set y get Nombrepublic Persona() {
rut = "00000000-0";
nombre = ""; }
public void setRut(String r){
rut = r; }
public String getRut(){
return rut; }
public void setNombre(String n){
nombre = n; }
public String getNombre(){
return nombre; }
Operaciones:
Atributos:
-set y get RUT
- RUT
- set y get Nombre
- Nombre
- set y get Rol UCV
- Rol UCV
}
NOTA: Supondremos, por el momento, todos los
miembros públicos.
FrancoGuidi Polanco
10
Implementación de jerarquías de herencia
Implementar las clases Persona y Alumno, de
acuerdo con lo siguiente:
Atributos:
- RUT
- Nombre
public class Alumno extends Persona
Súperclase
11
Franco Guidi Polanco
public String rolUCV;
public Alumno() {
rolUCV = 000000-0";
}
public void setRolUCV(String r){
rolUCV = r;
}
public String getRolUCV(){
return rolUCV;
}
public...
Regístrate para leer el documento completo.