Herencia en Java

Páginas: 29 (7175 palabras) Publicado: 26 de julio de 2015
Tema 3: Herencia en Java
Programación Orientada a Objetos
Curso 2009/2010
Begoña Moros Valle

Índice
„
„
„
„
„
„
„
„
„
„
„
„
„

Introducción
Herencia y creación
Herencia y Ocultamiento de la Información
Redefinición de características
Polimorfismo
Herencia y Sistema de tipos
Ligadura dinámica
Clase Object
Genericidad y Herencia. Genericidad restringida
Clases abstractas
Interfaces
Colecciones enJava (paquete java.util)
Patrones de diseño:
„

„

Método plantilla, Patrón Estrategia y Patrón Composite

Herencia Múltiple
Tema 3

Herencia

2

Introducción
„

Las clases no son suficientes para conseguir los objetivos
de:
(A) REUTILIZACIÓN: Necesidad de mecanismos para
generar código genérico:
„

Capturar aspectos comunes en grupos de estructuras similares

„

Independencia de larepresentación

„

Variación en estructuras de datos y algoritmos

(B) EXTENSIBILIDAD: Necesidad de mecanismos para
favorecer:
„
„

“Principio abierto-cerrado” y “Principio Elección Única”
Estructuras de datos polimórficas.
Tema 3

Herencia

3

Introducción
„

Entre algunas clases pueden existir relaciones
conceptuales:
„

„

Extensión, Especialización, Combinación

EJEMPLO:
„
„
„
„

Libros y Revistas tienenpropiedades comunes
Una Pila puede definirse a partir de una Cola o viceversa
Un Rectángulo es una especialización de Polígono
Puede haber distintos tipos de Cuentas

„

¿Tiene sentido crear una clase a partir de otra?

„

La herencia es el mecanismo que:
„

„

sirve de soporte para registrar y utilizar las relaciones
conceptuales existentes entre las clases
posibilita la definición de una clase apartir de otra

Tema 3

Herencia

4

Jerarquías de herencia
„

„

La herencia organiza las clases en una estructura
jerárquica formando jerarquías de clases
Ejemplos:
PUBLICACION

LIBRO
LIBRO_TEXTO
„
„

FIGURA
POLIGONO

REVISTA
INVESTIGACION MAGAZINE

CIRCULO

RECTANGULO

No es tan sólo un mecanismo para compartir código
Consistente con el sistema de tipos del lenguaje
Tema 3

Herencia

5 Introducción
„

Si una clase B hereda de otra clase A
entonces:
„

„

B incorpora la estructura (atributos) y
comportamiento (métodos) de la clase A
B puede incluir adaptaciones:
„
„
„

„

B puede añadir nuevos atributos
B puede añadir nuevos métodos
B puede redefinir métodos

Las adaptaciones son dependientes del
lenguaje
Tema 3

Herencia

6

El proceso de herencia es transitivo
A

„

B hereda de A„

„

A es la superclase y B la subclase

C hereda de B y A

B
„
„

C

Tema 3

„

B y C son subclases de A
B es un descendiente directo de A
C es un descendiente indirecto de A

Herencia

7

Tipos de herencia
A
B
D

„

C

Herencia simple
„

E

„

B

C

„

Ejemplo: Java, C#

Herencia múltiple
„

A

Tema 3

Una clase puede heredar de una única
clase.

Una clase puede heredar de varias
clases.

„Clases forman un grafo dirigido acíclico

„

Ejemplos: Eiffel, C++
Herencia

8

Diseño de jerarquías de herencia
„

Generalización (Factorización)
„
„

„

Especialización (Abstracción)
„
„

„

„

Se detectan clases con un comportamiento común
Ejemplo: Libro y Revista son Publicaciones
Se detecta que una clase es un caso especial de otra
Ejemplo: Rectangulo es un tipo de Poligono

No hay recetamágica para crear buenas
jerarquías
Problemas con la evolución de la jerarquía
Tema 3

Herencia

9

Caso de estudio: Gestión bancaria
„

„

„

Además de abrir cuentas en el banco se pueden
contratar depósitos.
Un depósito permite a los clientes obtener una
rentabilidad por su dinero
Un depósito se caracteriza por:
„

„

Estructura: titular, capital, plazo en días, tipo de
interés
Comportamiento:
„

„Tema 3

liquidar el depósito una vez cumplido el plazo con lo que se
devuelve al cliente el capital invertido más los intereses
Consultar los intereses producidos al final del periodo.
Herencia

10

Clase Depósito (1/2)
public class Deposito {
private Persona titular;
private double capital;
private int plazoDias;
private double tipoInteres;
public Deposito(Persona titular, double capital,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Herencia java
  • Herencia Java
  • Java- herencias
  • Ejemplo de Herencia en Java
  • Java II Herencia
  • Herencia Lenguaje Java
  • POO Herencia En Java
  • Herencia con array en Java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS