Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pedro Corcuera
Dpto. Matemtica Aplicada y
Ciencias de la Computacin
Universidad de Cantabria
corcuerp@unican.es
Objetivos
Aprender los conceptos de herencia
Comprender la forma de derivar una subclase
Java
ndice
Qu es herencia?
La Clase Object
Cmo derivar una subclase
Qu se puede hacer en una subclase?
Palabra reservada super
Sobreescritura (overriding) de mtodos
Modificadores en los mtodos sobreescritos
Casting de clases
Clases y mtodos final
Java
Qu es herencia?
Caracterstica primaria de la programacin orientada
a objetos
La herencia es una relacin entre
una superclase: clase ms general
una subclase: clase ms especializada
Java
Vehiculo
Moto
Coche
Turismo
Camion
Todoterreno
Java
Principio de sustitucin
Como la subclase Coche es-un Vehiculo
Coche comparte caractersticas comunes con Vehiculo
Se puede sustituir un objeto Coche en un algoritmo que
espera un objeto Vehiculo
La relacin es-un se representa con una flecha en un diagrama
de clase y significa que la subclase puede pertenecer como un
objeto de la superclase
Vehiculo
Coche miCoche = new Coche(. . .);
procesaVehiculo(miCoche);
es-un
Coche
Java
La subclase puede:
Aadir variables de instancia nuevas
Aadir nuevos mtodos
Cambiar la implementacin de mtodos heredados
Java
La Clase Object
La clase Object es la madre de todas las subclases
En lenguaje Java, todas las clases son derivadas o
extendidas a partir de la super clase Object
La clase Object es la nica que no tiene una clase padre
10
}
11
12
13
Java
14
Java
15
16
17
18
Java
19
20
21
22
23
24
Ocultacin de Mtodos
Si una subclase define un mtodo de clase (mtodo
esttico) con la misma interfaz que el mtodo de
clase en la superclase, el mtodo en la subclase
esconde al de la superclase
class Animal {
public static void testClassMethod() {
System.out.println("metodo de clase en Animal.");
}
}
// testClassMethod() de la subclase oculta el de la superclase
class Cat extends Animal {
public static void testClassMethod() {
System.out.println("metodo de clase en Cat.");
}
}
Java
25
Ocultacin de campos
Dentro de una subclase, un campo que tiene el
mismo nombre que un campo en la superclase oculta
el campo de la superclase incluso si son de tipos
diferentes
Dentro de la subclase, el campo en la superclase no
puede ser referenciado simplemente por su nombre
Para ello debe ser accedido con la palabra clave super
26
Qu es Tipo?
Cuando se crea una instancia de un objeto de una
clase, se dice que el objeto es del tipo de la clase y
sus superclases
Ejemplo:
Student student1 = new Student();
El objeto student1 es del tipo Student
El objeto student1 tambin es del tipo Person si Student
es una subclase de Person
El objeto student1 tambin es del Object
Java
27
Qu es Significado?
La instancia de un objeto de un tipo particular se
puede usar en cualquier lugar donde se invoca una
instancia del tipo y del supertipo
Ejemplo:
El objeto student1 es de tipo Student y Person
El objeto student1 se puede usar en cualquier lugar donde
el objeto de tipo Student o Person se invoca
Java
28
29
Ejemplo:
Si la clase Student es hija de la clase Person
Person person1 = new Student();
Student student1=(Student)person1;//cast expl
Java
30
31
32
Clases final
Son clases que no se pueden extender. Declaracin:
public final ClassName {
...
}
Java
33
Mtodos final
Son mtodos que no se pueden sobreescribir.
Declaracin:
public final
[tipoReturn][nombreMet]([parametros]) {
...
}
34