Académique Documents
Professionnel Documents
Culture Documents
HERENCIA
• ¿Qué es?
• Tipos de herencia.
• Sobrescribir.
• This
• Super
02/03/2007 Herencia 2
HERENCIA
¿Qué es?
02/03/2007 Herencia 3
HERENCIA
Tipos
02/03/2007 Herencia 4
HERENCIA
SOBRESCRIBIR
• Para que un método realice lo que nosotros
queramos se debe SOBRESCRIBIRLO.
• Solo debemos volver a definir el método en la
clase hija con el mismo nombre y parámetros.
02/03/2007 Herencia 5
HERENCIA
this
02/03/2007 Herencia 6
HERENCIA
this
• A veces es útil que un objeto pueda
referenciarse a si mismo, vemos un ejemplo:
class Cliente{
public Cliente(String n){
//Llamamos al otro constructor. El empleo de this ha de ser
//siempre en la primera línea dentro del constructor.
this(n, Cuenta.nuevo_numero());
.....
}
public Cliente (String n, int a){
nombre = n;
numero_cuenta = a;
}
02/03/2007 Herencia 7
HERENCIA
this
• Otro posible uso de this, es diferenciar entre
variables locales de un método o constructor y
variables del objeto.
02/03/2007 Herencia 8
HERENCIA
Super
• Del mismo modo que this apunta al objeto
actual tenemos otra variable super que apunta a
la clase padre de la cual se deriva nuestra clase
hija.
02/03/2007 Herencia 9
HERENCIA
Super
• Un ejemplo:
class Gato {
void hablar(){
System.out.println("Miau");
}
}///~
class GatoMagico extends Gato {
boolean gente_presente;
void hablar(){
if(gente_presente)
//Invoca al método sobreescrito de la clase padre
super.hablar();
else
System.out.println("Hola");
}
} ///:~
02/03/2007 Herencia 10
HERENCIA
Desarrollar una clase llamada CuentaCorriente que:
• Tenga tres atributos private de tipo Titular (Nombre – String, Apellidos –String y Edad – int),
de tipo String (el número de cuenta) y de tipo double(el saldo).
• Tenga un constructor con parámetros de tipo Titular, String y double.
• Tenga un constructor con parámetros de tipo Titular y String. El saldo seinicializará a 15,3.
• Tenga un getter para cada uno de los atributos.
• Tenga un setter solo para el saldo.
• Tenga un método ingresar que incremente el saldo en una cantidad.
• Tenga un método reintegro que decremente el saldo en una cantidad.
•Tenga un método para que al imprimir la cuenta salga por pantalla el número de cuenta y su
saldo.
• Tenga un método para comparar cuentas, sabiendo que dos cuentas serán iguales si sus
números de cuenta son iguales.
Nota 1: Al imprimir por pantalla un Titular saldrá su nombre, apellidos y edad.
Nota 2: Para comparar dos String utilizar su método compareTo(String) que devuelve 0 si son
iguales.
02/03/2007 Herencia 11
Desarrollar una clase llamada CuentaAhorro que:
• Es una especialización de CuentaCorriente.
• Tiene un atributo mas de tipo double (el interés).
• Tiene un constructor con parámetros de tipo Titular, String, double y double.
• Tiene un constructor con parámetros de tipo Titular, String y double. El saldo se
inicializará a 15,3.
• Tiene un constructor con parámetros de tipo Titular y String. El saldo se inicializará a
15,3 y el interés a 2,5.
• Tiene un getter para cada uno de los atributos.
• Tiene un método calcularInteres que incremente el saldo según el interés.
Desarrollar la clase Practica que en su método main cree varias cuentas de distinto tipo
y trabaje con ellas.
02/03/2007 Herencia 12
Diagrama de Clases (UML):
02/03/2007 Herencia 13