3.0-Herencia

Anuncio
HERENCIA
HERENCIA
•
•
•
•
•
¿Qué es?
Tipos de herencia.
Sobrescribir.
This
Super
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.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
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.3
HERENCIA
Tipos
• Existen dos tipos de herencias:
– Simple
– Múltiple, java no las soporta.
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.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.
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.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.
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.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;
}
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.7
HERENCIA
this
• Otro posible uso de this, es diferenciar entre
variables locales de un método o constructor y
variables del objeto.
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.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.
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.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");
}
} ///:~
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.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.
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.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 Practica6 que en su método main cree varias cuentas de distinto tipo
y trabaje con ellas.
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.12
Diagrama de Clases (UML):
22/11/2005
E.T.S de Ingenieros de Telecomunicación - UPNA
.13
Descargar