Presentacion progra

13
Universidad Gerardo Barrios Integrant es: Fernando Javier Sorto Medrano Fundamentos de programación: 2/01/22 Polimorfismo Luis Alonso López Ortiz Manuel Alejandro Ramírez Carias Oscar Rene Ascencio Pineda Raúl Enrique Hernández Quinteros Grupo “A” Ciclo 01- 2016

Transcript of Presentacion progra

Page 1: Presentacion progra

martes 2 de mayo de 2023

Universidad Gerardo Barrios

Integrantes:

Fernando Javier Sorto Medrano

Fundamentos de programación:

Polimorfismo

Luis Alonso López OrtizManuel Alejandro Ramírez CariasOscar Rene Ascencio PinedaRaúl Enrique Hernández Quinteros

Grupo “A”Ciclo 01-2016

Page 2: Presentacion progra

QUE ES EL POLIMORFISMO

En programación orientada a objetos, el polimorfismo se refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos. 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.Por ejemplo, en un lenguaje de programación que cuenta con un sistema de tipos dinámico (en los que las variables pueden contener datos de cualquier tipo u objetos de cualquier clase) como Smalltalk no se requiere que los objetos que se utilizan de modo polimórfico sean parte de una jerarquía de clases.

Page 3: Presentacion progra

Herencia y las clasificaciones en Programación Orientada a ObjetosPara poder entender este concepto de POO necesitas entender otras cosas previas, como es el caso de la herencia. Esto lo hemos explicado en un artículo anterior en DesarrolloWeb.com: Herencia en la Programación Orientada a Objetos.

Veremos que el polimorfismo y la herencia son dos conceptos estrechamente ligados. Conseguimos implementar polimorfismo en jerarquías de clasificación que se dan a través de la herencia. Por ejemplo, tenemos una clase vehículo y de ella dependen varias clases hijas como coche, moto, autobús, etc.

Page 4: Presentacion progra

Pero antes de entender todo esto, queremos ir un poco más hacia atrás, entendiendo lo que es un sistema de tipos.

Page 5: Presentacion progra

CLASIFICACIÓN DE POLIMORFISMO

Se puede clasificar el polimorfismo en dos grandes clases:Polimorfismo dinámico (o polimorfismo paramétrico) 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. Así, puede ser utilizado a todo tipo de datos compatible. Polimorfismo estático (o polimorfismo ad hoc) es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explícitos y declarados uno por uno antes de poder ser utilizados.

Page 6: Presentacion progra

POLIMORFISMOCapacidad que tiene los objetos de comportarse de múltiples formas.Java, permite que el código de sus programas tenga la posibilidad de ser usados con diferentes tipos de datos u objetos.Por ejemplo, supongamos que A y B son dos variables de tipo entero, entonces, la operación:

C= A+BNos devolverá la suma de éstos dos números, cuyo resultado será guardado en la variable C.Pero supongamos que A y B son del tipo String (es decir, dos cadenas de caracteres):

String A= “Hola”;String B= “bienvenidos a la Programación en Java.”;String C; C=A+B;Al tener esa secuencia de comandos, ya no obtendremos como resultado la suma de esos dos números, sino la concatenación de esas dos cadenas. Por tanto, el resultado en pantalla, sería:

Hola bienvenidos a la Programación en Java.

Page 7: Presentacion progra

CARACTERÍSTICAS• Un objeto puede comportarse como lo que es (Objeto a la clase a la que pertenece) O como cualquiera de sus clases Base (Padre).• En la llamada al constructor de la

clase base A usando (super(e)) pasamos un objeto e de la clase B como un objeto de la clase A

• El polimorfismo puede hacerse con referencias de super-clases abstract, super-clases normales e interfaces.

Page 8: Presentacion progra

UPCASTING• Únicamente tiene sentido por la existencia de la

herencia. • El polimorfismo (o upcasting) consiste en la

posibilidad de que una referencia a objetos de una clase pueda conectarse también con objetos de descendientes de ésta

Page 9: Presentacion progra

GENERALIZACIÓN• Es olvidar los detalles concretos de uno o varios

objetos de distintas clases y buscar un punto común a todos ellos en un ancestro.

• Se trata de algo que realiza comúnmente la mente humana durante el proceso de razonamiento.

Page 10: Presentacion progra

PASO DE ARGUMENTOS

Las conexiones polimorfas se realizan a veces de manera implícita en el paso de argumentos a una operación.

Page 11: Presentacion progra

CLASES ABSTRACTAS

Es una clase de termino medio entre una clase normal y una interfaz. Constituye una herramienta importante y necesaria para construir clases que tengan algunos métodos no implementados.La razón es que la clase principal no tiene otra razón que la de crear una interfaz común para todas las clases derivadas de ella.Los objetos de una clase abstracta no tienen significado propio.Se crea para manipular un conjunto de clases con una interfaz común.

Page 12: Presentacion progra

MÉTODOS ABSTRACTOS

• Para impedir la creación de objetos de una clase se deben declarar métodos abstractos

Sintaxis: abstract void nomMetodo();

• Si una clase contiene métodos abstractos entonces es una clase abstracta. El compilador generará un mensaje de error.

Page 13: Presentacion progra

VENTAJAS Y DESVENTAJAS DEL POLIMORFISMO

• El polimorfismo permite a los programadores separar las cosas que cambian de las que no cambian, y de esta manera hacer más fácil la ampliación, el mantenimiento y la reutilización de los programas.

• El polimorfismo puede hacerse con referencias de superclases abstract, super-clases normales e interfaces.

• Por su mayor flexibilidad y por su independencia de la jerarquía de clases estándar, las interfaces permiten ampliar muchísimo las posibilidades del polimorfismo.

• El polimorfismo está basado en utilizar referencias de un tipo más “amplio” que los objetos a los que apuntan. Las ventajas del polimorfismo son evidentes, pero hay una importante limitación: el tipo de la referencia (clase abstracta, clase base o interface) limita los métodos que se pueden utilizar y las variables miembro a las que se pueden acceder.