Ir al contenido principal

II Semestre: JAVA - Polimorfismo

INTRODUCCION

En Programación orientada a objetos programación orientada a objetos se denomina polimorfismo a la capacidad que tienen los objetos de una Clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa.
Dicho de otra forma, el polimorfismo consiste en conseguir que un objeto de una clase se comporte como un objeto de cualquiera de sus subclases, dependiendo de la forma de llamar a los métodos de dicha clase o subclases. Una forma de conseguir objetos polimórficos es mediante el uso de punteros a la superclase. De esta forma podemos tener dentro de una misma estructura (arrays, listas, pilas, colas, ...) objetos de distintas subclases, haciendo que el tipo base de dichas estructuras sea un puntero a la superclase

DEMOSTRANDO EL COMPORTAMIENTO POLIMÓRFICO:

Para demostrar cómo podemos obtener polimorfismo de manera sencilla, tendríamos que basarnos en lo revisado acerca de la Herencia de Clases. Por ejemplo, veamos el siguiente iagrama de Generalización (Herencia)



Descripción del Problema:

Una empresa paga a sus empleados sobre una base semanal. Los empleados son de cuatro tipos: "Salaried employees" se les paga un salario semanal fijo, independientemente del número de horas trabajadas , "hourly employees " se les paga por horas y recibir pago de horas extras por las horas trabajadas en exceso de 40 horas, "commission employees" se les paga un porcentaje de sus ventas y "salaried-commission" reciben un salario base más un porcentaje de sus ventas. Para el período de pago actual, la compañía ha decidido recompensar a los empleados asalariados de la Comisión mediante la adición de 10% de su sueldo básico. La empresa quiere implementar una aplicación Java que realiza sus cálculos de nómina polimórficamente.

Implementación de acuerdo al diagrama:

Primero definimos la clase abstracta Employee:




















Luego, definimos las subclases:

SalariedEmployee:
















 HourlyEmploye:


 














CommissionEmployee:
















BasePlusCommissionEmployee extendes CommissionEmployee


PROGRAMA PRINCIPAL:







Comentarios

Entradas populares de este blog

Microsoft Access - Entrega 02

Establecer Índices y Claves primarias: Los índices permiten especificar un orden para la búsqueda de registros, su principal tarea es esta, básicamente cualquier campo de una Tabla puede ser un índice, incluso un conjunto de campos pueden ser índices, (los que suelen denominarse INDICES COMPUESTOS). Para definir un índice en un campo de una tabla basta con especificar la propiedad correspondiente, o también utilizar el botón Índice, tal como se muestra en la Imagen:      Por ejemplo, digamos que nos piden crear un índice compuesto denominado FullName que abarca los campos Apellidos y Nombres. Para realizar esa tarea haga click en el botón Índices y luego configure de acuerdo a la imagen:       Clave Principal: La clave primaria permite identificar de manera única a un registro, por teoría de diseño de base de datos, cada Tabla debe tener su correspondiente clave primaria para facilitar tareas de búsqueda y actualización de registros. Para definir u...

Microsoft Access - Entrega 01

Bienvenidos al curso Online de Microsoft Access 2007, durante el desarrollo del curso iré posteando un sencillo tutorial para aprender a utilizar esta herramienta de gestión de bases de datos, de tal manera que al finalizar todas las entregas Ud. sepa cómo iniciarse en el diseño de Bases de datos así como en la construcción de versátiles aplicaciones. Qué es una base de datos? Una base de datos (en ocasiones abreviada B.D.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Fuente: Wikipedia Qué es un Programa Gest...

II Semestre - JAVA: EJERCICIOS SOBRE JERARQUIAS DE HERENCIA

Debate: Discutir las formas en que la herencia promueve la reutilización de software, se ahorra tiempo durante el desarrollo del programa y ayuda a prevenir errores. Ejercicio: Diseñar una jerarquía de herencia para los estudiantes en una universidad. Usar la clase Student como la superclase de la jerarquía, a continuación, extender Student con las clases de UndergraduateStudent y GraduateStudent . Continúe extendiendo la jerarquía tando como sea posible(como muchos niveles). Por ejemplo, Freshman , Sophomore , Junior y Senior podría heredar de UndergraduateStudent , asi mismo  DoctoralStudent y MastersStudent podría ser subclases de GraduateStudent . Despues de diseñar la jerarquía debatir las relaciones que existen entre las clases. [Nota: No es necesario escribir ningún código para este ejercicio.] Debate Algunos programadores prefieren no utilizar el acceso protegido, porque creen que rompe la encapsulación de la superclase. Discutir los méritos relativos de acceso pr...