Está en la página 1de 15

Introducción a la

Taller Herencia en Java.


web

ESCUELA DE INGENIERÍA
HERENCIA

La idea fundamental de la programación orientada a objetos es identificar los


objetos presentes en nuestro problema y sus relaciones para formar una
jerarquía de objetos: algo similar a un árbol genealógico; es decir, primero
identificar al objeto más genérico de la especie y luego identificar otros
objetos derivados de este primer objeto, y así sucesivamente, de esos
nuevos objetos identificar otros objetos derivados de ellos.

Los objetos derivados son objetos descendientes que heredan las


características y comportamiento de lo que se llama objetos ancestros (o sus
ascendientes).
EJEMPLO

En cierta empresa se tienen empleados, los cuales se dividen en dos tipos:


empleados por horas, a los que se les paga de acuerdo al número de horas
trabajadas y a una cuota que se les paga por hora, y empleados asalariados, a
quienes se les paga de acuerdo a un sueldo fijo mensual. En este problema
podemos identificar dos objetos:
Descripción:

Un objeto es: EmpleadoPorHoras, con los datos:

nombreEmp Nombre del empleado.


deptoEmp Departamento en el que labora.
puestoEmp Puesto que desempeña.
horasTrab Número de horas que trabajó.
cuotaHora Cuota que se le paga por hora.
sueldoQnaHoras Sueldo quincenal del empleado por horas, calculado con horas
Continua el ejemplo:

trabajadas y cuota por hora.


Y el otro objeto es: EmpleadoAsalariado, con los datos:

nombreEmp Nombre del empleado.


deptoEmp Departamento en el que labora.
puestoEmp Puesto que desempeña.
sueldoMensual Sueldo fi jo mensual que se le paga.
sueldoQnaAsal Sueldo quincenal del empleado asalariado, calculado
con el sueldo mensual.
Herencia:

Continua el ejemplo:
Podemos apreciar que los objetos EmpleadoPorHoras y EmpleadoAsalariado tienen en
común los datos nombreEmp, deptoEmp y puestoEmp. El resto de los datos son
diferentes.
Cuando se tiene una situación como la expuesta, podemos utilizar el mecanismo de
herencia mediante un proceso de abstracción en el que definimos un objeto más
abstracto que contenga lo que es común a los demás objetos para, a partir de ése,
derivar a los otros objetos mediante el mecanismo de herencia, como se muestra en el
siguiente diagrama:
.
Diagrama de Clases:
Diseño del diagrama de clases con herencia

Ahora se debe dibujar el diagrama de clases tomando como base el diagrama de


jerarquía de objetos elaborado líneas antes. Como ya se explicó, cada objeto
identificado se representa mediante una clase y, utilizando el rectángulo para
representar las clases, nos queda el siguiente diagrama de clases:
Diseño del diagrama de clases con herencia

Como se puede observar, se ha formado una jerarquía de clases donde


tenemos una primera clase, la clase principal o más general: la clase
Empleado, a la cual se le conoce como la superclase. Luego, de la
superclase Empleado se derivan dos clases, a las que se les llama
subclases porque son clases que se derivan de otra clase; éstas son: la
clase EmpleadoPorHoras y la clase EmpleadoAsalariado.
Diagrama de Clases:
Superclases y subclases

Las superclases no se usan para ser instanciadas, es decir, no se usan para generar
objetos a partir de ellas. Las superclases se utilizan para derivar otras clases
(subclases), formando jerarquías de clases a través del mecanismo de herencia. En
nuestro ejemplo, Empleado11 es una superclase que se utiliza para derivar las
subclases EmpleadoPorHoras1 y EmpleadoAsalariado1. En consecuencia, la clase
Empleado11 no se usa para generar objetos; sólo se generan objetos de las
subclases EmpleadoPorHoras1 y EmpleadoAsalariado1. Así, al generar un objeto de
la clase EmpleadoPorHoras1 tendrá la siguiente estructura:
Diseño de algoritmos OO usando herencia

En este apartado se toma como base el diagrama de clases diseñado en el


punto anterior y se procede a diseñar el algoritmo en pseudocódigo; es decir,
se diseña la lógica de cada clase usando pseudocódigo, involucrando el
concepto de herencia. A continuación se tiene el algoritmo:

Algoritmo CALCULAR SUELDO DE VARIOS EMPLEADOS


Clase Empleado11
Diseño de algoritmos OO usando herencia

Clase EmpleadoPorHoras1 hereda de Empleado11

Cada vez que entra al ciclo procesa un empleado y pregunta si es


empleado por horas o asalariado. Si el tipo de empleado es por horas,
genera un objeto llamado objEmpleado. Este objeto se generará tomando
como base la subclase EmpleadoPorHoras1, que a su vez hereda de
Empleado11, quedando un objeto con la siguiente estructura:

También podría gustarte