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

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...

II SEMESTRE: JAVA - Arrays Bidimensionales

Un Array bidimensional se diferencia del unidimensional simplemente porque este está basado en tablas, lo cual indica una composición de FILAS y COLUMNAS, esto quiere decir que para acceder a un elemento en particular de un array debe indicarse la coordenada completa, es decir: x=matriz[1][1]; x almacena el valor de la coordenada (1,1) de una matriz dada. Veamos un ejemplo:

II Semestre - JAVA: Conceptos Generales sobre Programación Orientada a Objetos

Saludos: Encontré este buen material teórico acerca de Programación Orientada a Objetos (POO), utilicen este tutorial para repasar algunos conceptos o aprender unos nuevos. Espero sus preguntas acerca de lo leído. Conceptos básicos de la Programación Orientada a Objetos Recuerden que la participacion en clase y en este blog viene siendo evaluada