140 likes | 485 Views
HERENCIA. HERENCIA. ¿Qué es? Tipos de herencia. Sobrescribir. This Super. HERENCIA ¿Qué es?.
E N D
HERENCIA • ¿Qué es? • Tipos de herencia. • Sobrescribir. • This • Super E.T.S de Ingenieros de Telecomunicación - UPNA
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 E.T.S de Ingenieros de Telecomunicación - UPNA
HERENCIATipos • Existen dos tipos de herencias: • Simple • Múltiple, java no las soporta. E.T.S de Ingenieros de Telecomunicación - UPNA
HERENCIASOBRESCRIBIR • 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. E.T.S de Ingenieros de Telecomunicación - UPNA
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. E.T.S de Ingenieros de Telecomunicación - UPNA
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; } E.T.S de Ingenieros de Telecomunicación - UPNA
HERENCIA this • Otro posible uso de this, es diferenciar entre variables locales de un método o constructor y variables del objeto. E.T.S de Ingenieros de Telecomunicación - UPNA
HERENCIASuper • 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. E.T.S de Ingenieros de Telecomunicación - UPNA
HERENCIASuper • 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"); } } ///:~ E.T.S de Ingenieros de Telecomunicación - UPNA
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. E.T.S de Ingenieros de Telecomunicación - UPNA
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. E.T.S de Ingenieros de Telecomunicación - UPNA
Diagrama de Clases (UML): E.T.S de Ingenieros de Telecomunicación - UPNA