Vous êtes sur la page 1sur 13

HERENCIA

HERENCIA
• ¿Qué es?
• Tipos de herencia.
• Sobrescribir.
• This
• Super

02/03/2007 Herencia 2
HERENCIA
¿Qué es?

• Se trata de crear una clase hija (subclase),


que hereda de la clase padre (superclase)
todos sus atributos, constructores, getters,
setters y métodos que pueden ser
modificados. Aunque puede tener esta sus
propios atributos y métodos.
• Estos nos permite la reusabilidad del código.
• Se implementa mediante: extends

02/03/2007 Herencia 3
HERENCIA
Tipos

• Existen dos tipos de herencias:


– Simple
– Múltiple, java no las soporta.

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

• Es una variable especial de sólo lectura que


proporciona Java.
• Contiene una referencia al objeto en el que se
usa dicha variable.

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

Vous aimerez peut-être aussi