Вы находитесь на странице: 1из 24

Laboratorio 05

HERENCIA
Agenda:
 Herencia.

2 POO - Manuel Lagos


Encapsulamiento vs Herencia
 Mientras que el encapsulamiento nos permite escribir
objetos autónomos bien definidos, posibilitando que un
objeto utilice a otro objeto mediante mensajes. EL uso es
sólo una de las formas en que los objetos se pueden
relacionar en la OO. Otra forma de interrelación entre
objetos viene a ser la Herencia.

3 POO - Manuel Lagos


Herencia
 El mecanismo conocido con el nombre de herencia
permite reutilizar clases: Se crea una nueva clase
que extiende la funcionalidad de una clase existente
sin tener que reescribir el código asociado a esta última.
 La herencia permite tomar una clase existente como base
para definir una nueva clase. A través de la herencia, la
clase nueva hereda todos los atributos y
comportamientos presentes en la clase existente..

4 POO - Manuel Lagos


Herencia
 La nueva clase, a la que se denomina subclase, puede
poseer atributos y métodos que no existan en la clase
original.
 Los objetos de la nueva clase heredan los atributos y los
métodos de la clase original, que se denomina
superclase.

5 POO - Manuel Lagos


Herencia
 Trabajador es una clase genérica que sirve para
almacenar datos como el nombre, la dirección, el
número de teléfono o el número de la seguridad
social de un trabajador.
 Empleado es una clase especializada para
representar los empleados que tienen una nómina
mensual (encapsula datos como su salario mensual
y los impuestos).
 Consultor es una clase especializada para
representar a aquellos trabajadores que cobran por
horas (por ejemplo, registra el número de horas
que ha trabajado un consultor y su tarifa horaria).

6 POO - Manuel Lagos


Herencia
 Las clases Empleado y
Consultor, además de
los atributos y de las
operaciones que
definen, heredan de
Trabajador todos sus
atributos y
operaciones.

7 POO - Manuel Lagos


Herencia
 Un empleado concreto tendrá, además de sus atributos y
operaciones como Empleado, todos los atributos
correspondientes a la superclase Trabajador.

8 POO - Manuel Lagos


Clase
Trabajador:

9 POO - Manuel Lagos


Clase
Empleado:

10 POO - Manuel Lagos


Herencia
 Con la palabra reservada extends indicamos que
Empleado es una subclase de Trabajador.
 Con la palabra reservada super accedemos a miembros
de la superclase desde la subclase.
 Generalmente, en un constructor, lo primero que nos
encontramos es una llamada al constructor de la clase
padre con super(...). Si no ponemos nada, se llama al
constructor por defecto de la superclase antes de
ejecutar el constructor de la subclase.

11 POO - Manuel Lagos


Clase
Consultor:

12 POO - Manuel Lagos


Herencia
 La clase Consultor también define un método llamado
calcularPaga (), si bien en este caso el cálculo se hace de
una forma diferente por tratarse de un trabajador de un
tipo distinto.
 Tanto la clase Empleado como la clase Consultor
redefinen el método toString () que convierte un objeto
en una cadena de caracteres.
 De hecho, Trabajador también redefine este método, que
se hereda de la clase Object, la clase base de la que
heredan todas las clases en Java.

13 POO - Manuel Lagos


Redefinición de métodos
 Como hemos visto en el ejemplo con el método toString
(), cada subclase hereda las operaciones de su superclase
pero tiene la posibilidad de modificar localmente el
comportamiento de dichas operaciones (redefiniendo
métodos).

14 POO - Manuel Lagos


Probando las clases:
 Defina una clase Principal y agregue el siguiente código adecuadamente
para probar las clases creadas:

15 POO - Manuel Lagos


Ejercicios

16 POO - Manuel Lagos


Enunciado:
 Cree un proyecto, defina las clases que crea conveniente
con sus respectivos atributos, constructores, get’s, set’s,
para los diagramas UML, mostrados a continuación.
 Cree una clase principal para probar las clases creadas.

17 POO - Manuel Lagos


Ejercicio 1:

18 POO - Manuel Lagos


Ejercicio 2:

19 POO - Manuel Lagos


Ejercicio 3:

20 POO - Manuel Lagos


Ejercicio 04: Caso Cuenta Bancaria
 En un determinado banco se da a los clientes algunas de las opciones de
cuentas siguientes:
 Una cuenta de ahorros, una cuenta de cheques, una cuenta a plazo fijo y
una cuenta sobregirada.
 Una cuenta genérica: Cada tipo de cuenta le permite al usuario
depositar y retirar fondos, así como verificar el saldo. La cuenta genérica
base no permite un sobregiro.
 La cuenta de ahorros: La cuenta de ahorros se especializa respecto de
la cuenta genérica mediante la aplicación de intereses al saldo cuando se le
indica. Por ejemplo, si un cuentahabiente tiene un saldo de $1000 y la tasa
de interés es del 2% del pago de intereses, el nuevo sado será: $1020.
Saldo = saldo + (saldo*tasaInteres)
 La cuenta de ahorros no permite un sobregiro.

21 POO - Manuel Lagos


Ejercicio 04: Caso Cuenta Bancaria
 La cuenta de cheques: a diferencia de las cuentas de ahorros y a plazo fijo, esta cuenta no
aplica intereses al saldo. En lugar de ello, la cuenta de cheques permite al cuentahabiente girar
cheques y efectuar transacciones a través de cajero automático. No obstante el banco
restringe el número de transacciones mensuales a una cantidad determinada. Si el
cuentahabiente excede esta cuota mensual, el banco cobrará un recargo por transacción. Por
ejemplo, si el cuentahabiente tiene cinco transacciones gratuitas por mes y hace ocho
transacciones, a un costo de $1 por transacción adicional, el banco cobrará un recargo de $3
al cuentahabiente.
 La cuenta de cheques no permite un sobregiro.
 Cuenta Sobregirada: esta cuenta permite al cuentahabiente retirar dinero adicional al que
indica su saldo. Sin embargo, esto no es gratuito. Periódicamente, el banco aplicará una tasa de
interés al saldo negativo. Por ejemplo si el cuentahabiente maneja un saldo de - $1000 a una
tasa de 20%, pagará un recargo de $200. Después de que se aplique el recargo, su saldo será
de -$1200 .
 Observe que el banco sólo cobra intereses a las cuentas con saldo negativo, si no lo hiciera
así, el banco terminará regalando dinero. El negocio del Banco no es regalara dinero.
 A diferencia de la cuenta de cheques, la cuenta sobregirada no tiene un límite para la cantidad
de transacciones mensuales. Al banco le agrada fomentar los retiros de dinero.

22 POO - Manuel Lagos


Ejercicio 04: Caso Cuenta Bancaria
 Formule una jerarquía de herencia e implemente las cuentas que
definimos anteriormente. Implemente una clase principal desde
donde probar todo el código generado.
 Simplifique las cosas, para el cálculo de recargos, el plazo de vencimiento y
el interés, suponga que el tercero vigilará el calendario. No incluya este tipo
de funcionalidad en sus clases. Proporciones un método para que otro
objeto lo llame. Por ejemplo, la clase CuentaAhorros deberá contar con un
método sumarIntereses(). Un objeto externo llamará a este método
cuando sea necesario calcular el interés. De la misma manera la clase
CuentaCheques deberá tener un método aplicarRecargos(). Cuando sea
llamado, este método calculará los recargos y los aplicará al saldo.

23 POO - Manuel Lagos


Cuestionario
2.1. Investigue sobre las formas de Herencia que se
pueden implementar.
2.2. ¿Conlleva algún peligro implementar el mecanismo
de la Herencia?.
2.3. ¿Cuando se hereda de una clase qué tipos de
métodos y atributos pueden haber?
2.4. ¿Qué significa programar por diferencia, tiene algún
beneficio?
2.5. Cree a partir de una calculadora básica una
calculadora científica que también sepa realizar los cálculos
trigonométricos del Sen, Cos, etc. Muestre el diagrama UML
e implemente la solución en java.
24 POO - Manuel Lagos

Вам также может понравиться