SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
NOMBRE:
ADRIANA BERENICE RENOVATO CEJA
CARRERA:
INGENIERÍA EN. TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
MATRICULA:
481200555
GRADO Y GRUPO:
9° CUATRIMESTRE “A”
MATERIA:
PROGRAMACIÓN DE APLICACIONES
UNIDAD:
“CONCEPTOS AVANZADOS DE LA POO”
PROFESOR:
I.S.C OMAR EMMANUEL LARA JUÁREZ
LUGAR Y FECHA:
PINOS ZAC, 03 DE JULIO DEL 2015
U N I V E R S I D A D T E C N O L Ó G I C A D E L E S T A D O D E Z A C A T E C A S
U N I D A D A C A D É M I C A D E P I N O S
T E C N O L O G Í A S D E L A I N F O R M A C I Ó N Y C O M U N I C A C I Ó N
POLIMORFISMO
Definición: El polimorfismo es una relajación del sistema de tipos, de tal manera
que una referencia a una clase (atributo, parámetro o declaración local o elemento
de un vector) acepta direcciones de objetos de dicha clase y de sus clases
derivadas (hijas, nietas,…).
HERENCIA Y LAS CLASIFICACIONES EN PROGRAMACIÓN ORIENTADA A
OBJETOS
Para poder entender este concepto de POO necesitas entender, como es el caso
de la herencia. El polimorfismo y la herencia son dos conceptos estrechamente
ligados. Por ejemplo, tenemos una clase vehículo y de ella dependen varias clases
hijas como coche, moto, autobús, etc.
¿POR QUÉ EL SISTEMA DE TIPOS ES IMPORTANTE EN POLIMORFISMO?
Para entender la importancia del tipado de datos, es importante entender cómo es
un lenguaje fuertemente tipado, como es el caso de Java o C. En estos lenguajes,
cuando defino una variable, siempre tengo que decir el tipo de datos que va a
contener esta variable. Por ejemplo:
int miNumero;
Vehículo
Coche Moto Bus
Clase Padre
Clase Hijas o
Derivadas
Así le indicamos que la variable declarada "miNumero" va a contener siempre un
entero. Podrás asignarle diversos valores, pero siempre deben de ser números
enteros. De lo contrario el compilador te lanzará un mensaje de error y no te
permitirá compilar el programa que has realizado. Esto incluso pasa con los
objetos. Por ejemplo, si en Java defino la clase "Largometraje" (una cinta que se
puede exhibir en la televisión o el cine), cuando creo objetos de la clase
"Largometraje" debo declarar variables en las que indique el tipo de objeto que va
a contener.
Largometraje miLargo = new Largometraje ("Lo que el viento se llevó");
Esa variable "miLargo", por declaración tendrá una referencia a un objeto de la
clase "Largometraje". Pues bien, durante toda su vida, deberá tener siempre una
referencia a cualquier objeto de la misma clase. Volviendo al ejemplo de los
vehículos, si defino una variable que apunta a un objeto de clase "Coche", durante
toda la vida de esa variable tendrá que contener un objeto de la clase Coche, no
pudiendo más adelante apuntar a un objeto de la clase Moto o de la clase Bus.
Esta rigidez, como decimos, no existe en los lenguajes débilmente tipados como
es el caso de JavaScript o PHP, sin embargo es una característica habitual de
lenguajes como Java, que son fuertemente tipados.
Coche miCoche = new Coche ("Ford Focus 2.0");
//la variable miCoche apunta a un objeto de la clase coche
//si lo deseo, mañana podrá apuntar a otro objeto diferente, pero siempre tendrá
que ser de la clase
Coche miCoche = new Coche("Renault Megane 1.6");
Lo que no se puede hacer es guardar en esa variable, declarada como tipo Coche,
otra cosa que no sea un objeto de la clase Coche.
//si miCoche fue declarada como tipo Coche, no puedo guardar un objeto de la
clase Moto miCoche = new Moto ("Yamaha YBR");
//la línea anterior nos daría un error en tiempo de compilación
En este punto todavía no se habla de polimorfismo, sino de algo de la
programación en general como es el sistema de tipos.
POLIMORFISMO EN OBJETOS
Los lenguajes fuertemente tipados, una variable siempre deberá apuntar a un
objeto de la clase que se indicó en el momento de su declaración. Una función
cuyo parámetro se haya declarado de una clase, sólo te aceptará recibir objetos
de esa clase. Un array que se ha declarado que es de elementos de una clase
determinada, solo aceptará que rellenemos sus casillas con objetos de esa clase
declarada.
Vehiculo [ ] misVehiculos = new Vehiculo [3];
Esa variable misVehiculos es un array y en él se ha declarado que el contenido de
las casillas serán objetos de la clase "Vehiculo". Polimorfismo es el mecanismo
por el cual podemos "relajar el sistema de tipos", de modo que nos acepte también
objetos de las clases hijas o derivadas. Por tanto, la "relajación" del sistema de
tipos no es total, sino que tiene que ver con las clasificaciones de herencia que
tengas en tus sistemas de clases. Si defines un array con casillas de una
determinada clase, el compilador también te aceptará que metas en esas casillas
objetos de una clase hija de la que fue declarada. Si declaras que una función
recibe como parámetros objetos de una determinada clase, el compilador también
te aceptará que le envíes en la invocación objetos de una clase derivada de
aquella que fue declarada.
¿PARA QUÉ NOS SIRVE EN LA PRÁCTICA EL POLIMORFISMO?
Si has entendido el sistema de tipos, y sin entrar todavía en polimorfismo, debido a
que los métodos declaran los tipos de los parámetros que recibes, tendrás que
hacer algo como esto:
Volviendo de nuevo a la clase Vehiculo. Además nos centramos en la utilidad del
polimorfismo y sus posibilidades para reducir el mantenimiento de los programas
informáticos, que es lo que realmente me gustaría que se entienda. Tenemos la
clase Parking. Dentro de ésta tenemos un método estacionar (). Puede que en un
parking tenga que estacionar coches, motos o autobuses. Sin polimorfismo tendría
que crear un método que permitiese estacionar objetos de la clase "Coche", otro
método que acepte objetos de la clase "Moto" para estacionarlos, etc. Pero todos
estaremos de acuerdo que estacionar un coche, una moto o un bus es bastante
similar: "entrar en el parking, recoger el ticket de entrar, buscar una plaza, situar el
vehículo dentro de esa plaza...".
Gracias al polimorfismo, cuando declaro la función estacionar () puedo decir que
recibe como parámetro un objeto de la clase "Vehiculo" y el compilador me
aceptará no solamente vehículos genéricos, sino todos aquellos objetos que
hayamos creado ,hereden de la clase Vehículo, se deriva coches, motos, buses,
etc. Esa relajación del sistema de tipos para aceptar una gama de objetos
diferente es lo que llamamos polimorfismo.
Esto es lo que significa polimorfismo. A partir de aquí puede haber otra serie de
consideraciones y recomendaciones, así como características implementadas en
otros lenguajes.
CONCLUSIÓN
La importancia del polimorfismo yo que creo que es fundamental en la
programación orientada a objetos. El polimorfismo es muy útil ya que permite
escribir métodos genéricos que puedan recibir parámetros que sean de un
determinado tipo o de cualquiera de sus clases hijas o derivadas.
En programación orientada a objetos el polimorfismo se refiere a la capacidad
para que varias clases derivadas de una antecesora utilicen un mismo método de
forma diferente. El término polimorfismo también es conocido como ‘Sobrecarga
de parámetros’ ya que las características de los objetos permiten aceptar distintos
parámetros para un mismo método (diferentes implementaciones) generalmente
con comportamientos distintos e independientes para cada una de ellas.
La diferencia entre los tipos de lenguajes tipados y no tipados, los lenguajes
tipados incrementan el tiempo de desarrollo y son más difíciles de aprender una
ventaja de estos lenguajes es que son compilados, es decir que se traducen
directamente a lenguaje de máquina y esto al manejar grandes cantidades de
datos hace diferencia, es mucho más rápido en la maquina seguir el proceso que
debe realizar, los lenguajes no tipados, o débilmente tipados, al definir una
variable no requieren de que se les asigne un tipo de variable, es más pueden
cambiar el tipo de variable en cualquier momento.

Más contenido relacionado

La actualidad más candente

Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++ncrmax
 
Vectores, matrices y estructuras
Vectores, matrices y estructurasVectores, matrices y estructuras
Vectores, matrices y estructurasrichmadriz
 
Identificadores, variables y constantes
Identificadores, variables y constantesIdentificadores, variables y constantes
Identificadores, variables y constantesCarlos Pes
 
Modelo de Objeto Semantico
Modelo de Objeto SemanticoModelo de Objeto Semantico
Modelo de Objeto SemanticoF
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datosCaro_Noirgean
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacionfranciscocain
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSmyle22
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosGeovanny Yungán
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relaciónjosecuartas
 
Modelos de objetos semanticos
Modelos de objetos semanticosModelos de objetos semanticos
Modelos de objetos semanticosMarelvis_inf
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVannesa Salazar
 

La actualidad más candente (20)

Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Vectores, matrices y estructuras
Vectores, matrices y estructurasVectores, matrices y estructuras
Vectores, matrices y estructuras
 
Identificadores, variables y constantes
Identificadores, variables y constantesIdentificadores, variables y constantes
Identificadores, variables y constantes
 
Modelo de Objeto Semantico
Modelo de Objeto SemanticoModelo de Objeto Semantico
Modelo de Objeto Semantico
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Modelos de objetos semanticos
Modelos de objetos semanticosModelos de objetos semanticos
Modelos de objetos semanticos
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 

Similar a Polimorfismo (20)

Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo 14k
Polimorfismo 14kPolimorfismo 14k
Polimorfismo 14k
 
Polimorfismo1
Polimorfismo1Polimorfismo1
Polimorfismo1
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo_PApps
Polimorfismo_PAppsPolimorfismo_PApps
Polimorfismo_PApps
 
polimorfismo
polimorfismopolimorfismo
polimorfismo
 
Programación de aplicaciones
Programación de aplicacionesProgramación de aplicaciones
Programación de aplicaciones
 
Polimorfismoomar
PolimorfismoomarPolimorfismoomar
Polimorfismoomar
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Resumen polimorfismo
Resumen polimorfismoResumen polimorfismo
Resumen polimorfismo
 
RESUMEN DE POLIMORFISMO
RESUMEN DE POLIMORFISMORESUMEN DE POLIMORFISMO
RESUMEN DE POLIMORFISMO
 
Guía polimorfismo
Guía polimorfismoGuía polimorfismo
Guía polimorfismo
 
Polimorfismo resumen
Polimorfismo resumenPolimorfismo resumen
Polimorfismo resumen
 
Herencia
HerenciaHerencia
Herencia
 
UT05-POO.pdf
UT05-POO.pdfUT05-POO.pdf
UT05-POO.pdf
 
Herencia yPolimorfismo
Herencia yPolimorfismoHerencia yPolimorfismo
Herencia yPolimorfismo
 

Más de Ruben Robles

Auditoria sistema ti
Auditoria sistema tiAuditoria sistema ti
Auditoria sistema tiRuben Robles
 
Hackear contraseña
Hackear contraseñaHackear contraseña
Hackear contraseñaRuben Robles
 
Plantilla proyecto aler tic_
Plantilla proyecto aler tic_Plantilla proyecto aler tic_
Plantilla proyecto aler tic_Ruben Robles
 
Informe de auditoria
Informe de auditoriaInforme de auditoria
Informe de auditoriaRuben Robles
 
Sistemas de telecomunicaciones
Sistemas de telecomunicacionesSistemas de telecomunicaciones
Sistemas de telecomunicacionesRuben Robles
 
Centro de telecomunicaciones
Centro de telecomunicacionesCentro de telecomunicaciones
Centro de telecomunicacionesRuben Robles
 
Enlace punto a punto pinos la victoria
Enlace punto a punto pinos la victoriaEnlace punto a punto pinos la victoria
Enlace punto a punto pinos la victoriaRuben Robles
 
Trabajo bdoo unidad 4_cp
Trabajo bdoo unidad 4_cpTrabajo bdoo unidad 4_cp
Trabajo bdoo unidad 4_cpRuben Robles
 
Trabajo bdoo unidad 4_cp
Trabajo bdoo unidad 4_cpTrabajo bdoo unidad 4_cp
Trabajo bdoo unidad 4_cpRuben Robles
 
Trabajo final plan de las comunicaciones
Trabajo final plan de las comunicacionesTrabajo final plan de las comunicaciones
Trabajo final plan de las comunicacionesRuben Robles
 
Gestion de recursos humanos
Gestion de recursos humanosGestion de recursos humanos
Gestion de recursos humanosRuben Robles
 
Mapa mental gestionar_el_equipo_del_proyecto
Mapa mental gestionar_el_equipo_del_proyectoMapa mental gestionar_el_equipo_del_proyecto
Mapa mental gestionar_el_equipo_del_proyectoRuben Robles
 

Más de Ruben Robles (19)

Auditoria sistema ti
Auditoria sistema tiAuditoria sistema ti
Auditoria sistema ti
 
Hackear contraseña
Hackear contraseñaHackear contraseña
Hackear contraseña
 
Plantilla proyecto aler tic_
Plantilla proyecto aler tic_Plantilla proyecto aler tic_
Plantilla proyecto aler tic_
 
Informe de auditoria
Informe de auditoriaInforme de auditoria
Informe de auditoria
 
Sistemas de telecomunicaciones
Sistemas de telecomunicacionesSistemas de telecomunicaciones
Sistemas de telecomunicaciones
 
Centro de telecomunicaciones
Centro de telecomunicacionesCentro de telecomunicaciones
Centro de telecomunicaciones
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
Clases abstractas
Clases abstractasClases abstractas
Clases abstractas
 
Enlace punto a punto pinos la victoria
Enlace punto a punto pinos la victoriaEnlace punto a punto pinos la victoria
Enlace punto a punto pinos la victoria
 
Trabajo bdoo unidad 4_cp
Trabajo bdoo unidad 4_cpTrabajo bdoo unidad 4_cp
Trabajo bdoo unidad 4_cp
 
Trabajo bdoo unidad 4_cp
Trabajo bdoo unidad 4_cpTrabajo bdoo unidad 4_cp
Trabajo bdoo unidad 4_cp
 
Mr mer ddd
Mr mer dddMr mer ddd
Mr mer ddd
 
Trabajo final plan de las comunicaciones
Trabajo final plan de las comunicacionesTrabajo final plan de las comunicaciones
Trabajo final plan de las comunicaciones
 
Transaccionb
TransaccionbTransaccionb
Transaccionb
 
Gestion de recursos humanos
Gestion de recursos humanosGestion de recursos humanos
Gestion de recursos humanos
 
Mapa mental gestionar_el_equipo_del_proyecto
Mapa mental gestionar_el_equipo_del_proyectoMapa mental gestionar_el_equipo_del_proyecto
Mapa mental gestionar_el_equipo_del_proyecto
 
Estandares de ti
Estandares de tiEstandares de ti
Estandares de ti
 
Aplicacion movil
Aplicacion movilAplicacion movil
Aplicacion movil
 
A1 ap los usb
A1 ap los usbA1 ap los usb
A1 ap los usb
 

Polimorfismo

  • 1. NOMBRE: ADRIANA BERENICE RENOVATO CEJA CARRERA: INGENIERÍA EN. TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN MATRICULA: 481200555 GRADO Y GRUPO: 9° CUATRIMESTRE “A” MATERIA: PROGRAMACIÓN DE APLICACIONES UNIDAD: “CONCEPTOS AVANZADOS DE LA POO” PROFESOR: I.S.C OMAR EMMANUEL LARA JUÁREZ LUGAR Y FECHA: PINOS ZAC, 03 DE JULIO DEL 2015 U N I V E R S I D A D T E C N O L Ó G I C A D E L E S T A D O D E Z A C A T E C A S U N I D A D A C A D É M I C A D E P I N O S T E C N O L O G Í A S D E L A I N F O R M A C I Ó N Y C O M U N I C A C I Ó N
  • 2. POLIMORFISMO Definición: El polimorfismo es una relajación del sistema de tipos, de tal manera que una referencia a una clase (atributo, parámetro o declaración local o elemento de un vector) acepta direcciones de objetos de dicha clase y de sus clases derivadas (hijas, nietas,…). HERENCIA Y LAS CLASIFICACIONES EN PROGRAMACIÓN ORIENTADA A OBJETOS Para poder entender este concepto de POO necesitas entender, como es el caso de la herencia. El polimorfismo y la herencia son dos conceptos estrechamente ligados. Por ejemplo, tenemos una clase vehículo y de ella dependen varias clases hijas como coche, moto, autobús, etc. ¿POR QUÉ EL SISTEMA DE TIPOS ES IMPORTANTE EN POLIMORFISMO? Para entender la importancia del tipado de datos, es importante entender cómo es un lenguaje fuertemente tipado, como es el caso de Java o C. En estos lenguajes, cuando defino una variable, siempre tengo que decir el tipo de datos que va a contener esta variable. Por ejemplo: int miNumero; Vehículo Coche Moto Bus Clase Padre Clase Hijas o Derivadas
  • 3. Así le indicamos que la variable declarada "miNumero" va a contener siempre un entero. Podrás asignarle diversos valores, pero siempre deben de ser números enteros. De lo contrario el compilador te lanzará un mensaje de error y no te permitirá compilar el programa que has realizado. Esto incluso pasa con los objetos. Por ejemplo, si en Java defino la clase "Largometraje" (una cinta que se puede exhibir en la televisión o el cine), cuando creo objetos de la clase "Largometraje" debo declarar variables en las que indique el tipo de objeto que va a contener. Largometraje miLargo = new Largometraje ("Lo que el viento se llevó"); Esa variable "miLargo", por declaración tendrá una referencia a un objeto de la clase "Largometraje". Pues bien, durante toda su vida, deberá tener siempre una referencia a cualquier objeto de la misma clase. Volviendo al ejemplo de los vehículos, si defino una variable que apunta a un objeto de clase "Coche", durante toda la vida de esa variable tendrá que contener un objeto de la clase Coche, no pudiendo más adelante apuntar a un objeto de la clase Moto o de la clase Bus. Esta rigidez, como decimos, no existe en los lenguajes débilmente tipados como es el caso de JavaScript o PHP, sin embargo es una característica habitual de lenguajes como Java, que son fuertemente tipados. Coche miCoche = new Coche ("Ford Focus 2.0"); //la variable miCoche apunta a un objeto de la clase coche //si lo deseo, mañana podrá apuntar a otro objeto diferente, pero siempre tendrá que ser de la clase Coche miCoche = new Coche("Renault Megane 1.6"); Lo que no se puede hacer es guardar en esa variable, declarada como tipo Coche, otra cosa que no sea un objeto de la clase Coche. //si miCoche fue declarada como tipo Coche, no puedo guardar un objeto de la clase Moto miCoche = new Moto ("Yamaha YBR"); //la línea anterior nos daría un error en tiempo de compilación En este punto todavía no se habla de polimorfismo, sino de algo de la programación en general como es el sistema de tipos.
  • 4. POLIMORFISMO EN OBJETOS Los lenguajes fuertemente tipados, una variable siempre deberá apuntar a un objeto de la clase que se indicó en el momento de su declaración. Una función cuyo parámetro se haya declarado de una clase, sólo te aceptará recibir objetos de esa clase. Un array que se ha declarado que es de elementos de una clase determinada, solo aceptará que rellenemos sus casillas con objetos de esa clase declarada. Vehiculo [ ] misVehiculos = new Vehiculo [3]; Esa variable misVehiculos es un array y en él se ha declarado que el contenido de las casillas serán objetos de la clase "Vehiculo". Polimorfismo es el mecanismo por el cual podemos "relajar el sistema de tipos", de modo que nos acepte también objetos de las clases hijas o derivadas. Por tanto, la "relajación" del sistema de tipos no es total, sino que tiene que ver con las clasificaciones de herencia que tengas en tus sistemas de clases. Si defines un array con casillas de una determinada clase, el compilador también te aceptará que metas en esas casillas objetos de una clase hija de la que fue declarada. Si declaras que una función recibe como parámetros objetos de una determinada clase, el compilador también te aceptará que le envíes en la invocación objetos de una clase derivada de aquella que fue declarada. ¿PARA QUÉ NOS SIRVE EN LA PRÁCTICA EL POLIMORFISMO? Si has entendido el sistema de tipos, y sin entrar todavía en polimorfismo, debido a que los métodos declaran los tipos de los parámetros que recibes, tendrás que hacer algo como esto: Volviendo de nuevo a la clase Vehiculo. Además nos centramos en la utilidad del polimorfismo y sus posibilidades para reducir el mantenimiento de los programas informáticos, que es lo que realmente me gustaría que se entienda. Tenemos la clase Parking. Dentro de ésta tenemos un método estacionar (). Puede que en un parking tenga que estacionar coches, motos o autobuses. Sin polimorfismo tendría que crear un método que permitiese estacionar objetos de la clase "Coche", otro método que acepte objetos de la clase "Moto" para estacionarlos, etc. Pero todos estaremos de acuerdo que estacionar un coche, una moto o un bus es bastante
  • 5. similar: "entrar en el parking, recoger el ticket de entrar, buscar una plaza, situar el vehículo dentro de esa plaza...". Gracias al polimorfismo, cuando declaro la función estacionar () puedo decir que recibe como parámetro un objeto de la clase "Vehiculo" y el compilador me aceptará no solamente vehículos genéricos, sino todos aquellos objetos que hayamos creado ,hereden de la clase Vehículo, se deriva coches, motos, buses, etc. Esa relajación del sistema de tipos para aceptar una gama de objetos diferente es lo que llamamos polimorfismo. Esto es lo que significa polimorfismo. A partir de aquí puede haber otra serie de consideraciones y recomendaciones, así como características implementadas en otros lenguajes.
  • 6. CONCLUSIÓN La importancia del polimorfismo yo que creo que es fundamental en la programación orientada a objetos. El polimorfismo es muy útil ya que permite escribir métodos genéricos que puedan recibir parámetros que sean de un determinado tipo o de cualquiera de sus clases hijas o derivadas. En programación orientada a objetos el polimorfismo se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente. El término polimorfismo también es conocido como ‘Sobrecarga de parámetros’ ya que las características de los objetos permiten aceptar distintos parámetros para un mismo método (diferentes implementaciones) generalmente con comportamientos distintos e independientes para cada una de ellas. La diferencia entre los tipos de lenguajes tipados y no tipados, los lenguajes tipados incrementan el tiempo de desarrollo y son más difíciles de aprender una ventaja de estos lenguajes es que son compilados, es decir que se traducen directamente a lenguaje de máquina y esto al manejar grandes cantidades de datos hace diferencia, es mucho más rápido en la maquina seguir el proceso que debe realizar, los lenguajes no tipados, o débilmente tipados, al definir una variable no requieren de que se les asigne un tipo de variable, es más pueden cambiar el tipo de variable en cualquier momento.