Está en la página 1de 17

Herencia

Programación II

Vigilada MinEducación www.ucundinamarca.edu.co


Herencia

Vigilada MinEducación www.ucundinamarca.edu.co


Herencia

https://jarroba.com/herencia-en-la-programacion-orientada-a-objetos-ejemplo-en-java/

Vigilada MinEducación www.ucundinamarca.edu.co


Herencia
• Otra característica poderosa de usar clases y objetos es la
capacidad de hacer uso de la herencia. Eso hace posible
crear una clase y heredar todos los atributos y métodos de
una clase padre.
• Se puede crear clases hijo que herede todos los atributos y
métodos de la clase padre. Las clases secundarias (hijo)
pueden agregar campos y métodos que correspondan a sus
necesidades.

Vigilada MinEducación www.ucundinamarca.edu.co


Herencia
Una clase puede heredar atributos y comportamientos
(métodos de otra clase), llamados superclase o clase padre.
Una clase que hereda de una superclase se llama subclase
(clase hijo). Las superclases son a veces llamados ancestros
también. Existe una relación de jerarquía entre clases. Es
similar a relaciones o categorizaciones que conocemos en la
vida real.

Vigilada MinEducación www.ucundinamarca.edu.co


Herencia

Vigilada MinEducación www.ucundinamarca.edu.co


Herencia

Las bicicletas, los automóviles, los autobuses y los camiones son vehículos. Camionetas
furgonetas, carros deportivos, los convertibles y los carros familiares son todos carros y por ser
carros también son vehículos. Podríamos implementar una clase de vehículo en Java, que puede
tener métodos como acelerar y frenar. Los automóviles, autobuses y camiones y bicicletas se
pueden implementar como subclases que heredarán estos métodos de vehículo.

Vigilada MinEducación www.ucundinamarca.edu.co


Problema
En la Universidad de Cundinamarca se tienen docentes, los cuales se dividen en dos tipos:
docentes hora catedra (HC), a los que se les paga de acuerdo al número de horas trabajadas y a
un valor que se les paga por hora, y docentes de tiempo completo ocasional (TCO), a quienes se
les paga de acuerdo a un sueldo fijo mensual.
Diseñar y construir un programa que permita calcular el sueldo de varios docentes.

Vigilada MinEducación www.ucundinamarca.edu.co


Analizar el problema.
En este problema podemos identificar dos objetos:
Un objeto es: DocenteHC, con los datos:

nombreDoc Nombre del docente.


facultadDoc Facultad en la que labora.
cadiDoc Cadi a cargo.
horasTrab Número de horas que trabajó.
valorHora Valor que se le paga por hora.
sueldoMesHoras Sueldo mensual del docente por horas, calculado con horas
trabajadas y valor por hora.

Vigilada MinEducación www.ucundinamarca.edu.co


Analizar el problema.
Y el otro objeto es: DocenteTCO, con los datos:
nombreDoc Nombre del docente.
facultadDoc Facultad en la que labora.
cadiDoc Cadi a cargo.
SueldoBasico sueldo fijo mensual que recibe el docente
AsesoriaDoc por cada trabajo de grado al docente se le pagan 2 horas extras de
asesoría (cantidad de trabajos de grado multiplicado por valorHoraAsesor) * 2
cantrabgrado cuántos trabajos de grado asesora el docente
valorHoraAsesor valor de la hora que se le paga a un director de trabajo de grado
sueldoMensual Sueldo fijo mensual que se le paga más las asesorías de trabajo de
grado

Vigilada MinEducación www.ucundinamarca.edu.co


Diseño
Podemos apreciar que los objetos
DocenteHC y DocenteTCO tienen en
común los datos nombreDoc,
facultadDoc y cadiDoc. 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 Diagrama de jerarquía
mecanismo de herencia, como se
muestra en el siguiente diagrama:
Vigilada MinEducación www.ucundinamarca.edu.co
Diseñar el programa.
Diagrama de clases

Vigilada MinEducación www.ucundinamarca.edu.co


Explicación del diagrama
Se tiene la clase controlador EjecutarDocente1, la cual utiliza al modelo, que
está formado por tres clases jerarquizadas:

1. La clase Docente1, que es la superclase o clase principal, que tiene los


datos nombreDoc, facultadDoc y cadiDoc, y los métodos
establecerNombreDoc(), establecerFacultadDoc(), establecerCadiDoc(),
obtenerNombreDoc(), obtenerFacultadDoc() y obtenercadiDoc() para
establecer y obtener cada uno de los datos respectivamente. Docente1 es la
superclase que se usa para derivar subclases a través del mecanismo de
herencia; es por ello que a sus datos se le antepuso el símbolo #, el cual
indica que el dato es protegido (protected); los datos deben ser protegidos
para que se puedan heredar.

Vigilada MinEducación www.ucundinamarca.edu.co


Explicación del diagrama
2. La clase DocenteHC, que es una subclase que se deriva de la superclase Docente,
tiene los datos horasTrab, valorHora y sueldoMesHoras, y los métodos
establecerHorasTrab(), establecerValorHora(), calcularSueldoMesHoras() y
obtenerSueldomesHoras() para establecer las horas trabajadas, establecer el valor por
hora y calcular el sueldo mensual del empleado por horas respectivamente. Al
derivarse de Docente1, DocenteHC1 hereda los datos y métodos de Docente1 a través
del mecanismo de herencia.
3. La clase DocenteTCO1, que es una subclase que se deriva de la superclase
Docente1, tiene los datos sueldoMensual, sueldoBasico, canTrabGrado,
valorHoraAsesor y asesoriaDoc, y los métodos establecerSueldoBasico(),
establecerCanTrabGrado(), establecerVlorHoraAsesor(), calcularSueldoMensuall() y
obtenerSueldoMensual() para establecer el sueldo mensual, calcular el sueldo mensual
del docenteTCO. Al derivarse de Docente1, DocenteTCO hereda los datos y métodos
de Docente a través del mecanismo de herencia.

Vigilada MinEducación www.ucundinamarca.edu.co


Implementación de Código
• Docente1.java
• EjecutarDocente1.java
• DocenteHC1.java
• DocenteTCO1.java

Vigilada MinEducación www.ucundinamarca.edu.co


Ejercicio
Construir un programa en java que ofrezca un menú de opciones mediante el cual se pueda escoger calcular
el volumen de las figuras geométricas: cubo, cilindro, cono y esfera. Una vez seleccionada la opción, que
permita solicitar y leer los datos necesarios para calcular el volumen correspondiente e imprima el nombre de
la figura y el volumen.

Volumen de cubo = Arista³


Volumen de cilindro = πr²h
Volumen de cono = πr²h
Volumen de esfera = πr³

Vigilada MinEducación www.ucundinamarca.edu.co


Debe ofrecer el siguiente menú de opciones, donde está solicitando la opción deseada:

AREAS FIGURAS GEOMETRICAS:

1. CUBO
2. CILINDRO
3. CONO
4. ESFERA
5. SALIR
ESCOGER OPCIÓN
Se debe usar una clase padre o superclase Figura que contendrá el dato nombre y los métodos para establecerlo y obtenerlo. De esa
superclase derivar cuatro subclases o clases hijo:
Cubo, Cilindro, Cono y Esfera, en cada una de las cuales se heredarán el dato y los métodos de la superclase; además, cada subclase
de éstas deberá tener sus propios datos y métodos para establecer los datos necesarios, calcular el volumen correspondiente y
obtenerlo para imprimirlo. Asimismo, deberá haber una clase controlador que permita leer los datos y utilice el modelo para
representar y solucionar el problema.

Vigilada MinEducación www.ucundinamarca.edu.co

También podría gustarte