Está en la página 1de 8

ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA

PROGRAMACIÓN ORIENTADA A OBJETOS 301403

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA. UNAD


NOVIEMBRE DE 2019
1. Consulta y definición de los siguientes conceptos:
Herencia:
Es el concepto que permite que se puedan definir nuevas clases basadas
en clases existentes, con el fin de reutilizar el código previamente
desarrollado, creándose jerarquías de clases dentro de la aplicación, con
ello si una clase se deriva de otra puede añadir nuevos atributos y
métodos y/o redefinir los atributos y métodos heredados, para que se
puedan heredar la visibilidad debe ser “protected”,

En java es posible que no se pueda realizar herencia múltiple con base a


clases, pero si es posible simularla en base a la interface, la herencia en
java se puede demostrar en un ejemplo, donde una clase A contiene un
atributo llamado valor 1, en cual este atributo lo heredan las clases B, C,
D y E, utilizándola con otros atributos únicos de esa clase y solo para un
valor de dicha clase.

Se pueden utilizar los códigos siguientes para crear herencias:

Extends: se incluye para que una clase herede de otra clase, le da


permisos para que tenga acceso a los atributos y métodos protegidos de
la clase que va heredar.

Super: utilizada para acceder a métodos implementados en la clase


superior en el concepto de herencia, en otras palabras, accedemos al
constructor de la clase superior desde el constructor de la clase inferior.

También podemos utilizar la sobre-escritura de métodos, la cual consiste


en implementar un método en la clase superior e inferior en la jerarquía
de herencia, con ello podemos crear métodos que sirvan para dos clases
diferentes.

Pueda que existan diferentes clases la cual a cada una de ellos se realiza
la herencia de forma similar, en las clases abstractas son las que no
pueden ser instanciadas, se pueden heredar los atributos y métodos
heredados, pero obliga a las clases que heredan a que implementen
métodos abstractos.

Polimorfismo:
Permite modificar la instancia de un objeto en tiempo de ejecución
basado en una jerarquía de herencia, la cual es posible generar una
relación de vinculación denominada binding,

Esta se puede realizar con clases superiores normales, abstractas e


interfaces, con ello podemos acceder a diferentes servicios en tiempo de
ejecución sin necesidad de implementar diferentes referencias a
objectos

Herencia Simple:
La herencia simple es la que podemos utilizar en java, indicándonos que
podemos definir nuevas clases solamente a partir de una clase inicial.

Herencia Múltiple:
La herencia múltiple no es soportada por java, pero puede ser simulada
utilizando implements e interfaces, permitiendo implementar o cubrir
una clase con respecto a otra, podemos decir que se definen nuevas
clases a partir de dos o mas clases iniciales.

Herencia de Interfaz:
Es un tipo especial de clase que permite realizar un conjunto de
declaraciones de métodos sin implementación, se pueden definir
constantes como public, static y finaly, que deben inicializarse en la
declaración, para que la clase use las definiciones de una interfaz debe
incluirse la sentencia implements, para que una clase pueda
implementar varias interfaces se ponen los nombres de las interfaces
separadas por comas seguida de la sentencia, lo cual, lo que hacemos
es que una clase A herede de una clase B e implemente en C y que una
clase D herede de una clase F implementándose en C.
Herencia de Implementación:
La herencia de implementación de los métodos es heredada, en la cual
se puede sobrescribir en las clases derivadas, con esto podemos
reutilizar el código.

Polimorfismo y reutilización:
La reutilización aplicada a componentes de alto nivel, como clases y
procesos, proporciona los mayores niveles de automatización, su
contrapartida resulta ser un elevado nivel de incorporación de
componentes de bajo nivel como acciones atributos o variables que
nunca son utilizadas, pero que se encuentran incluidas en el esquema
por estar encapsuladas en dichas clases o procesos, gracias a que se
heredan los comportamiento de las clases, se reduce la necesidad de
volver a escribir código escrito.

Sobrecarga:
Se refiere a la posibilidad de proporcionar nuevos métodos con el mismo
nombre que tiene los métodos de la clase padre, pero con diferente
comportamiento, esto permite que el entorno y comportamiento de una
clase sea heredado por otra y solamente se modifiquen aquellos
métodos que sean necesarios para su comportamiento especifico.

Polimorfismo en jerarquías de herencia:


Encontramos que los métodos con el mismo nombre y distinta signatura
de tipo y enlace estático, en java se maneja el modelo merge
(sobrecarga) donde los diferentes significados que se encuentran en
todos los ámbitos actualmente activos, se unen para formar una sola
colección de métodos, la simple existencia de un método con el mismo
nombre y asignatura de tipos en clase base y derivada indica
sobreescritura.
Variables Polimórficas:
Se le denomina variables polimórficas a las variables que contienen
objectos y se refiere al hecho de que una misma variable puede
contener objetos de diferentes tipos del tipo declarado o de cualquier
subtipo del tipo declarado, denominado muchas formas.

Con ello podemos utilizar dos tipos de variables arraylist que puede
contener objetos de cualquier tipo y linkedlist el cual es una lista
enlazada que puede contener objetos, otras listas y muchas cosas más.
2. Modelo de herencia a aplicar en su proyecto. En este modelo
deben especificarse cada una de las clases según el modelo de
clases de la fase 2 y posteriormente implementar la herencia
donde determine cuáles son las clases padre que quedan y
cuáles son las clases hijas que quedan junto con los atributos a
heredar.

Para implementar las herencias en el proyecto realizado, realice una


búsqueda en la cual se deberían generar herencias en las tablas de
consultas, encontré que para mostrar un mejor resultado en cada una
de las consultas realizadas por los usuarios, las tablas Usuarios, Turnos,
Rotaciones, Reportes y Empresas, contenían relaciones, las cuales todas
necesitaban más de una variable de la tabla usuario, por ello la tabla
usuario será la clase padre y las demás serán las hijas, para ello se
sugiere 8 clases y 3 formularios para mostrar los resultados.

Clases a crear:
 ClassEmpresa
 ClassReporte
 ClassRotaciones
 ClassTurnos
 ClassUsuario

En donde la clase ClassUsuario será una la clase padre el cual tendrá los
atributos de Nombre, Apellido, NombreRotadoPor.

Las clases hijas serán ClassTurnos, con los atributos (FechaTurno,


HoraInicio, HoraFinalizacion) donde heredara los atributos (Nombre,
Apellido) de la clase ClassUsuario.

ClassRotaciones la cual será una clase hija y heredará de la clase


ClassUsuario, esta tendrá el único atributo (FechaRotacion) los demás
serán heredados (Nombre, Apellido, NombreRotadoPor).
ClassReportes será una clase hija con atributos (Reporte,
FechaReporte), el cual heredara de la clase padre que es ClassUsuario
los atributos (Nombre, Apellido).

ClassEmpresa, con los atributos (NombreEmpresa, Direccion), como


java no permite heredar de dos clases padres, así que esta heredara de
la clase ClassTurnos, el cual tomara todos sus atributos y esta a su vez
heredara de la clase padre ClassUsuario.

Para que la herencia funcione y muestre los resultados requeridos, se


requiere que los atributos de cada clase sean encapsulados, con esto se
requiere crear tres clases más (FuncioReporte, FuncionTurnos,
FuncionRotado) dentro de ellas colocaremos código para crear un
ArrayList, en la cual estaremos utilizando el llamado polimorfismo, una
lista en la cual se guardara en los atributos de las clases, los resultados
de la consulta que se realizara a la base de datos, una vez hecho esto,
desde los formularios diseñados para mostrar la información en un
JTable, llamaremos cada atributo y lo asignaremos a cada casilla de la
tabla, gracias a esta herencia eliminaremos código que se estaba
utilizando para mostrar información de dos o mas tablas de la base de
datos.
BIBLIOGRAFÍA

Pérez Menor, J. M., Carretero Pérez, J., García Carballeira, F., & Pérez
Lobato, J. M. (2003). Herencia y polimorfifismo. In Problemas
resueltos de programación en lenguaje Java (pp. [283]-303).
Madrid, Spain: Paraninfo. Recuperado de:
http://bibliotecavirtual.unad.edu.co:2081/ps/i.do?
p=GVRL&u=unad&id=GALE|
CX2136500015&v=2.1&it=r&sid=GVRL&asid=f6553daa

Flórez, F. H. A. (2012). Programación orientada a objetos usando java


(pp. 119-138). Recuperado de
https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.actio
n?docID=3203026&query=programaci%C3%B3n+con+java

También podría gustarte