Sei sulla pagina 1di 15

Tema 3.

CONCEPTOS DE JAVA PARA ESTRUCTURAS DE


DATOS

1. La heren ia en Java
Reglas de visibilidad. El onstru tor y super
Metodos y lases nales. La sobrees ritura
Metodos y lases abstra tos

2. Ex ep iones en Java: tratamiento a traves de la heren ia

3. El prin ipio POO del polimor smo en Java: enla e dinami o

4. Representa ion enlazada en Java

5. Heren ia multiple

6. Interfaz
EDA. Curso 2002/2003. N.Prieto. 5/11/200 1
7. Programa ion generi a

EDA. Curso 2002/2003. N.Prieto. 5/11/200 2


OBJETIVOS Y BIBLIOGRAFIA

Profundizar en el on epto de heren ia en Java, in luyendo el polimor smo

Analizar el tratamiento de ex ep iones en Java

Aprender a derivar una ole ion de lases a partir de una uni a lase abstra ta

Estudiar la interfaz, un tipo espe ial de lase

Aprender omo implementa Java la programa ion generi a usando heren ia

Introdu ir la de ni ion y el uso de representa iones enlazadas

Weiss M.A. Estru turas de datos en Java. Adisson-Wesley, 2000. Captulo 2


(apartado 2.5) y aptulo 4

EDA. Curso 2002/2003. N.Prieto. 5/11/200 3


LA HERENCIA EN JAVA

Es el me anismo basi o de reutiliza ion de odigo

Permite extender la fun ionalidad de un objeto

Se pueden de nir nuevos tipos restringiendo (o aumentando) propiedades del tipo


original (jerarqua de lases)

Es el me anismo que Java emplea para implementar metodos y lases generi as

EDA. Curso 2002/2003. N.Prieto. 5/11/200 4


Sintaxis basi a. Ejemplo

Class veh ulo {


//atributos
private int num_ruedas;
private double velo idad;
private String mar a, modelo;
//Metodos
void veh ulo (int n,double v, String m, String mod) {
//.....
}
// otros metodos
}
lass o he extends veh ulo {
// atributos
private int num_puertas;
// ....
}

EDA. Curso 2002/2003. N.Prieto. 5/11/200 5


 DE UNA CLASE DERIVADA
DESCRIPCION

La lase derivada in luye todos los miembros de la lase base

En general, tambien los nuevos atributos de la lase derivada seran privados

Cualquier metodo de la lase base que no se espe i que en la derivada es heredado


(ex epto el onstru tor)

Cualquier metodo de la lase base que se de na de nuevo se sobrees ribe. La


nueva de ni ion se apli a sobre los objetos de la lase derivada

En la lase derivada se pueden a~nadir metodos nuevos

La heren ia se puede utilizar on diferentes niveles de profundidad (arbol de


heren ia o estru tura jerarqui a en forma de arbol)

No existe la heren ia multiple

EDA. Curso 2002/2003. N.Prieto. 5/11/200 6


EL CONSTRUCTOR Y super

Una lase derivada (sub lase) puede referirise a la lase base (super lase inmediata)
utilizando la palabra reservada super. Sirve para:

Llamar al onstru tor de la super lase

A eder a un miembro de la super lase que ha sido o ultado

EDA. Curso 2002/2003. N.Prieto. 5/11/200 7


Uso de super. Ejemplo 1
Class aja {
//atributos
private int alto, an ho, profundo;
//Constru tor
publi aja (int alto,int an ho,int profundo) {
this.alto=alto; this.an ho=an ho; this.profundo=profundo;
}
}
lass ajaPeso extends aja {
// atributos
private int peso;
// Constru tor
publi ajaPeso (int alto,int an ho,int profundo,int peso) {
super(alto,an ho,profundo);
this.peso=peso;
}
}

EDA. Curso 2002/2003. N.Prieto. 5/11/200 8


Uso de super. Ejemplo 2

Class A {
//atributos
int i;
//...
}
lass B extends A {
// atributos
double i;
// Constru tor
publi B (int a,double b) {
super.i=a;
i=b;
}
}

EDA. Curso 2002/2003. N.Prieto. 5/11/200 9



METODOS Y CLASES FINALES

Para que un metodo permanez a invariante, no pueda sobrees ribirse debemos


de lararlo omo nal

La de lara ion de un metodo omo nal puede ondu irnos a odigo mas e iente

Las lases nales son similares a los metodos nales: una lase nal no puede ser
extendida (todos sus metodos son nales).

EDA. Curso 2002/2003. N.Prieto. 5/11/200 10


Clase nal. Ejemplo

Class Base {
//atributos
final void f() {...}
}
lass Derivada extends Base {
// atributos
// ...
}

//...
//...
void hazlo (Base obj) {
obj.f();
}
//...

EDA. Curso 2002/2003. N.Prieto. 5/11/200 11


SOBREESCRITURA: reemplazo

lass A {
private int i,j;
publi void mostrar() {
System.out.println("i y j valen :"+i+" "+j);
}
}

lass B extends A {
private int k;
publi void mostrar() {
System.out.println("k vale :"+k);
}
}

EDA. Curso 2002/2003. N.Prieto. 5/11/200 12


SOBREESCRITURA: re namiento

lass A {
private int i,j;
publi void mostrar() {
System.out.println("i y j valen :"+i+" "+j);
}
}

lass B extends A {
private int k;
publi void mostrar() {
super.mostrar();
System.out.println("k vale :"+k);
}
}

EDA. Curso 2002/2003. N.Prieto. 5/11/200 13



METODOS Y CLASES ABSTRACTAS
Una lase abstra ta estable e un modelo para las lases derivadas, donde la mayora
de los metodos de la lase abstra ta seran implmentados por las lase derivadas

Su objetivo es servir de base a iertas lases derivadas que deben seguir el patron
estable ido por la super lase abstra ta Cara tersti as de las lases y metodos
abstra tos

Una lase que posea un metodo abstra to debe de ser de larada omo abstra ta

Los metodos abstra tos no tienen uerpo y han de ser implementados por las
lases derivadas

Una lase abstra ta no puede ser instan iada

Una lase abstra ta puede ser heredada por otra lase abstra ta. La sub lase por
ser abstra ta, no esta obligada a implementar todos los metodos abstra tos de la
super lase
EDA. Curso 2002/2003. N.Prieto. 5/11/200 14
Se pueden de larar variables referen ia uyo tipo sea una lase abstra ta

EDA. Curso 2002/2003. N.Prieto. 5/11/200 15

Potrebbero piacerti anche