Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Programacion Orientada a Objetos - Undiad 4 polimorfismo
1. TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Unidad 4: Polimorfismo
PROGRAMACIÓN ORIENTADA A OBJETOS
2. 2
PROGRAMACIÓN ORIENTADA A OBJETOS
Competencia de la unidad:
Aplica el concepto de polimorfismo para la definición de clases
abstractas e interfaces que permitan reutilización de código.
3. INTRODUCCIÓN
Una de las tres mayores facetas de la programación orientada a objetos es el
polimorfismo. Aplicado a C++, el término polimorfismo usado para describir
el proceso en el cual diferentes implementaciones de una función pueden
ser accedidas a través del mismo nombre.
PROGRAMACIÓN ORIENTADA A OBJETOS
4. Por esta razón, el polimorfismo es en ocasiones caracterizado por la frase
"Una interface, múltiples métodos." Esto significa que cada miembro de una
clase general de operaciones puede ser accedida del mismo modo, incluso
cuando las acciones especificas con cada operación puedan diferir.
PROGRAMACIÓN ORIENTADA A OBJETOS
5. Polimorfismo
En programación orientada a objetos el polimorfismo se refiere a la
posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza
puede ser heterogénea.
El único requisito que deben cumplir los objetos que se utilizan de manera
polimórfica es saber responder al mensaje que se les envía. La apariencia del
código puede ser muy diferente dependiendo del lenguaje que se utilice, más
allá de las obvias diferencias sintácticas.
PROGRAMACIÓN ORIENTADA A OBJETOS
6. Polimorfismo
• Es la habilidad que poseen los objetos para reaccionar de modo diferente
ante los mismos mensajes.
• El polimorfismo se refiere a la posibilidad de definir múltiples clases con
funcionalidad diferente, pero con métodos o propiedades denominados
de forma idéntica, que pueden utilizarse de manera intercambiable
mediante código cliente en tiempo de ejecución.
PROGRAMACIÓN ORIENTADA A OBJETOS
7. Ejemplo:
Dada una clase VehiculoTerrestre, es posible heredar nuevas clases,
por ejemplo: {coche, camión, motocicleta, bicicleta}.
Sin importar que vehículo estemos invocando, si llamamos el método
MostrarNumRuedas() se llamará el método de cada subclase, ya que
cada objeto no deja de ser vehículo.
PROGRAMACIÓN ORIENTADA A OBJETOS
8. Ejemplos en un diagrama de clase
PROGRAMACIÓN ORIENTADA A OBJETOS
9. Práctica:
• Realice el diagrama de clase que incluya polimorfismo de 3 subclases,
• La clase base debe ser vehículo automotor,
• Las subclases no deben tener el mismo tipo de motor,
• Debes colocar comentarios a las operaciones para indicar como las
realiza cada una de las subclases
PROGRAMACIÓN ORIENTADA A OBJETOS
11. PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo de Polimorfismo Paramétrico:
• Una clase define varios métodos con el mismo
nombre pero diferente firma (sobrecarga)
• Se elige el método de acuerdo a la firma aplicada
• La sobrecarga del constructor es un ejemplo de
ello
12. PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo de Polimorfismo de Sobrecarga
(Overload):
• Diferentes clases tienen un método con
el mismo nombre, pero
comportamiento diferente
• Se aplica el método de acuerdo al
objeto en que se trabaje
13. PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo de Polimorfismo Subtipo (Override);
• Las clases derivadas redefinen los métodos y/o propiedades heredados
mediante la sobre-escritura (override)
14. PROGRAMACIÓN ORIENTADA A OBJETOS
Diferencia entre Sobrecarga y Polimorfismo
• La Sobrecarga hace referencia a un conjunto de Métodos con el
mismo Nombre pero diferente Número de Parámetros y/o
Tipos de estos, además que estos Métodos se encuentran
definidos en una misma Clase.
• En tanto que Polimorfismo hace referencia a un conjunto de
Métodos con el mismo Nombre e igual Número de Parámetros
y Tipos, pero que se encuentran definidos en diferentes clases.
15. PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio: Hacer un programa que aplique herencia y polimorfismo
en un vehículo de motor con las subclases coche, camión y
motocicleta; con las siguientes características:
• Debe contar con los atributos y métodos para conocer el
número de cilindros del vehículo sin importar su tipo.
• Debe contar con los atributos y métodos para conocer el
número de ruedas del vehículo sin importar su tipo.
• Se debe poder conocer el número de ruedas.
• Se debe poder desplegar el número de cilindros.
16. Práctica polimorfismo:
• Desarrolla un programa que utilice herencia creando una clase llamada
polígono:
• Heredar sus propiedades a un triángulo, un cuadrado y un rectángulo.
• Se deben crear los métodos y constructores necesarios por cada clase
padre o heredada.
• Por cada polígono heredado se debe calcular el área y el perímetro en
métodos separados.
• Insertar un menú básico en la rutina main para elegir si se desea calcular
un triángulo, un cuadrado y un rectángulo.
PROGRAMACIÓN ORIENTADA A OBJETOS
17. Proyecto Polimorfismo
• Crear el programa que permita calcular los diferentes tipos de impuestos que
una empresa debe pagar, para esto debes usar todas las estructuras de
programación que puedan aplicarse, como ciclos, condiciones, herencia, etc.
• El ejercicio debe partir de una clase llamada impuesto la cual hereda a otras
subclases sus características (IVA, IEPS, PREDIAL).
• El cálculo de los impuestos se debe realizar dentro de cada subclase.
• Para el caso del IVA este debe ser calculado con base en un monto y una tasa de
porcentaje.
• El IEPS depende del octanaje de la gasolina, cuando es menor a 92 octanos es
11.95%, cuando es mayor o igual a 92 octanos es 16%.
• Para el caso del Predial se debe de calcular con base en la tabla proporcionada
en Excel la cual contiene límites y cuotas fijas.
PROGRAMACIÓN ORIENTADA A OBJETOS