polimorfismo
description
Transcript of polimorfismo
![Page 1: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/1.jpg)
3.3 PROGRAMACIÓN ORIENTADA OBJETO POO
POLIM
ORFIS
MO
1/11
![Page 2: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/2.jpg)
POLIMORFISMO
CONCEPTO
Es 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.
2/11
![Page 3: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/3.jpg)
El polimorfismo es también conocido como ‘Sobrecarga de parámetros’
ya que las características de los objetos permiten aceptar distintos parámetros para un mismo método.
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.
El concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos.
Así nacen los conceptos de funciones polimórficas tipos polimórficos.
3/11
![Page 4: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/4.jpg)
POLIMORFISMO
Los comportamientos pueden ser identificados bajo el mismo nombre pero procesan información de manera diferente de acuerdo al objeto que lo contenga.
4/11
![Page 5: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/5.jpg)
EJEMPLOS DE POLIMORFISMO
Como se puede ver, todas tienen el mismo método CalculaArea(),
solo que al invocarlos, cada clase realizará la operación correspondiente de acuerdo a quien lo está invocando, es decir, los algoritmos del cálculo de área son diferentes en cada clase derivada.
Atributo Subclase Clase
Forma
Circulo
ÁreaRadio
CalcularArea()
Triangulo Área
Base, altura
Rectángulo Área
Longitud , ancho
5/11
![Page 6: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/6.jpg)
FUNCIONES POLIMÓRFICAS Y TIPOS POLIMÓRFICOS
FUNCIONES POLIMÓRFICAS : Son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta
TIPOS POLIMÓRFICOS: por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no está especificado
6/11
![Page 7: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/7.jpg)
CLASIFICACIÓN DE POLIMORFISMOS
Polimorfismo
dinámico
Polimorfismo
estático
Es aquél en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja.
Es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados.
El polimorfismo dinámico unido a la herencia es lo que en ocasiones se conoce comoprogramación genérica.
7/11
![Page 8: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/8.jpg)
POLIMORFISMO MÉTODOS VIRTUALES
El polimorfismo indica que una variable pasada o esperada puede adoptar múltiples formas. Cuando se habla de polimorfismo en programación orientada a objetos se suelen entender dos cosas
1) se refiere a que se puede trabajar con un objeto de una clase sin importar de qué clase se trata
2) Suele referirse a la posibilidad de declarar métodos con el mismo nombre que pueden tener diferentes argumentos dentro de una misma clase.
8/11
![Page 9: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/9.jpg)
BENEFICIOS DEL POLIMORFISMO
Simplicidad
• Si necesitas escribir código que trata con una familia de tipos, el código puede ignorar los detalles específicos
• Aunque el código piense que está actuando con un objeto de tipo superclase, puede estar operando con un objeto subclase
Extensibilidad
• Otras subclases pueden ser añadidas después a la familia de tipos, y sus objetos pueden también seguir trabajando con el código existente.
9/11
![Page 10: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/10.jpg)
EJEMPLO DE POLIMORFISMO
Ejemplo de polimorfismo
En este ejemplo haremos uso del lenguaje C++ para mostrar el polimorfismo. También se hará uso de las funciones virtuales puras de este lenguaje.
10/11
![Page 11: polimorfismo](https://reader036.fdocuments.ec/reader036/viewer/2022082709/55cf8f33550346703b99e7d1/html5/thumbnails/11.jpg)
EJEMPLO DE POLIMORFISMO
11/11