SlideShare una empresa de Scribd logo
Universidad Gerardo Barrios
Integrantes:
Fernando Javier Sorto Medrano
Fundamentos de programación:
domingo, 12 de junio de 2016
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
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.
Herencia y las clasificaciones en Programación Orientada a
Objetos
Para 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.
Pero antes de entender todo esto,
queremos ir un poco más hacia atrás,
entendiendo lo que es un sistema de
tipos.
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.
POLIMORFISMO
Capacidad 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+B
Nos 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.
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.
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
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.
PASO DE ARGUMENTOS
Las conexiones polimorfas se realizan a veces de
manera implícita en el paso de argumentos a una
operación.
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.
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.
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.

Más contenido relacionado

PPT
Componentes en-poo
PDF
Java excepciones
PDF
Estructuras de Control en Lenguaje C
TXT
Serie Fibonacci en C
PPT
Propiedades De La Poo
 
PPTX
Unidad 1 introducción a las estructuras de datos
PPTX
Estructura basica para c++
PDF
Alice 5
Componentes en-poo
Java excepciones
Estructuras de Control en Lenguaje C
Serie Fibonacci en C
Propiedades De La Poo
 
Unidad 1 introducción a las estructuras de datos
Estructura basica para c++
Alice 5

La actualidad más candente (20)

PDF
Ejercicios Programación Modular - Sullin Santaella
PPTX
Programación lógica y funcional
PPTX
2. Cascada De Fase Solapada
DOCX
Problema temperatura dev c++
PPT
Curso Uml 2.1 Diagramas De Cu Y Clases
PDF
Programación geométrica
PPTX
Diagrama de despliegue
PDF
Windows forms c# visual basic .net ejercicios
PDF
Uml clase 04_uml_clases
PPTX
Unidad 2. Metodologías de Desarrollo
DOCX
Tabla comparativa programación estructurada y orientada a objetos
PPT
Diagramas UML
PDF
Diagrama de clases
PPTX
Lenguaje de pascal
PPTX
Programación 3: listas enlazadas
PPTX
Paradigma Orientado a Objetos
PPSX
Estructuras iterativas
PPTX
Clasificación de los lenguajes de programación
PPT
Diagramas de flujo y algoritmos
PPT
Pruebas del Software
Ejercicios Programación Modular - Sullin Santaella
Programación lógica y funcional
2. Cascada De Fase Solapada
Problema temperatura dev c++
Curso Uml 2.1 Diagramas De Cu Y Clases
Programación geométrica
Diagrama de despliegue
Windows forms c# visual basic .net ejercicios
Uml clase 04_uml_clases
Unidad 2. Metodologías de Desarrollo
Tabla comparativa programación estructurada y orientada a objetos
Diagramas UML
Diagrama de clases
Lenguaje de pascal
Programación 3: listas enlazadas
Paradigma Orientado a Objetos
Estructuras iterativas
Clasificación de los lenguajes de programación
Diagramas de flujo y algoritmos
Pruebas del Software
Publicidad

Destacado (11)

PDF
Polimorfismo em jogos
ODP
Java - Boas práticas
DOC
DeadClerkDrawing14Sept2003.DOC
PDF
The Colonies
PDF
Education Transcript
PDF
MAPA DE TOLEDO
PDF
Modulowy Dom
PDF
Descentralización de la gestión
PDF
Diez temas candentes de la sanidad española para 2012, Valencia, 2012
PDF
Diez temas candentes de la sanidad española para 2011
Polimorfismo em jogos
Java - Boas práticas
DeadClerkDrawing14Sept2003.DOC
The Colonies
Education Transcript
MAPA DE TOLEDO
Modulowy Dom
Descentralización de la gestión
Diez temas candentes de la sanidad española para 2012, Valencia, 2012
Diez temas candentes de la sanidad española para 2011
Publicidad

Similar a Presentacion progra (20)

PDF
Polimorfismo en java
PDF
Poliformismo
PDF
Polimorfism oo
PDF
polimorfismo
PPTX
Presentacion de clases en c#
PDF
Polimorfismo
PDF
Polimorfismo
PPT
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
DOCX
4 unidad polimorfismo
PDF
Polimorfismo
PDF
Polimorfismo en JAVA
DOCX
Polimorfismo
PPTX
Trabajo de diceño y realizacion
PDF
Polimorfismo1
PDF
Polimorfismo
PPT
Semana1 2.programacion1ppt
PPT
Programación Orientada a Objeto - Ing. Ricardo Samudio Pinto
PPT
Programación Orientada a Objeto - Ing. Ricardo Samudio Pinto
PDF
Polimorfismo 14k
Polimorfismo en java
Poliformismo
Polimorfism oo
polimorfismo
Presentacion de clases en c#
Polimorfismo
Polimorfismo
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
4 unidad polimorfismo
Polimorfismo
Polimorfismo en JAVA
Polimorfismo
Trabajo de diceño y realizacion
Polimorfismo1
Polimorfismo
Semana1 2.programacion1ppt
Programación Orientada a Objeto - Ing. Ricardo Samudio Pinto
Programación Orientada a Objeto - Ing. Ricardo Samudio Pinto
Polimorfismo 14k

Más de zeta2015 (20)

PDF
Planificacion didactica
PDF
Electronica
PDF
Guia
PDF
Practica 3 smis059916
PPTX
Formularios y contenedores
PDF
lña
PDF
Form y container
PDF
Guia de visual estudios
PDF
Paz yamileth-guevara- smis031916-practica-4
PDF
Sumario de temas
PDF
Jornalizacion
PPTX
Peligros del internet
PPTX
Peligros del internet
PDF
Tarea adicinal
PDF
Tarea adicional
PDF
Labo 2
PDF
Python guia01 1
PDF
Repaso 28-abril-2016 b
PDF
Repaso 19 abril2016
PDF
Guia logica-lab1-c1
Planificacion didactica
Electronica
Guia
Practica 3 smis059916
Formularios y contenedores
lña
Form y container
Guia de visual estudios
Paz yamileth-guevara- smis031916-practica-4
Sumario de temas
Jornalizacion
Peligros del internet
Peligros del internet
Tarea adicinal
Tarea adicional
Labo 2
Python guia01 1
Repaso 28-abril-2016 b
Repaso 19 abril2016
Guia logica-lab1-c1

Último (11)

PDF
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
PDF
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
PPTX
Presentación de un estudio de empresa pp
PPTX
tema-2-interes-.pptx44444444444444444444
PPT
laser seguridad a la salud humana de piel y vision en laser clase 4
PPTX
presentacion_energias_renovables_renovable_.pptx
PDF
Mesopotamia y Egipto.pptx.pdf historia universal
PDF
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
PDF
Herramientaa de google google keep, maps.pdf
PPTX
Guia de power bi de cero a avanzado detallado
PPTX
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
Presentación de un estudio de empresa pp
tema-2-interes-.pptx44444444444444444444
laser seguridad a la salud humana de piel y vision en laser clase 4
presentacion_energias_renovables_renovable_.pptx
Mesopotamia y Egipto.pptx.pdf historia universal
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
Herramientaa de google google keep, maps.pdf
Guia de power bi de cero a avanzado detallado
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR

Presentacion progra

  • 1. Universidad Gerardo Barrios Integrantes: Fernando Javier Sorto Medrano Fundamentos de programación: domingo, 12 de junio de 2016 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
  • 2. 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.
  • 3. Herencia y las clasificaciones en Programación Orientada a Objetos Para 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.
  • 4. Pero antes de entender todo esto, queremos ir un poco más hacia atrás, entendiendo lo que es un sistema de tipos.
  • 5. 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.
  • 6. POLIMORFISMO Capacidad 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+B Nos 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.
  • 7. 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.
  • 8. 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
  • 9. 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.
  • 10. PASO DE ARGUMENTOS Las conexiones polimorfas se realizan a veces de manera implícita en el paso de argumentos a una operación.
  • 11. 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.
  • 12. 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.
  • 13. 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.