El documento habla sobre el polimorfismo en programación orientada a objetos. Explica que el polimorfismo permite que una referencia a una clase acepte objetos de esa clase y sus clases derivadas, relajando el sistema de tipos. También permite que arrays y parámetros de funciones acepten objetos de clases hijas de la clase declarada originalmente.
1. 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 E 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
ALUMNO(A):
GUADALUPE DEL ROSARIO LOPEZ GUERRERO
CARRERA:
INGENIERIA EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
GRADO Y GRUPO:
9 CUATRIMESTRE “A”
MATERIA:
PROGRAMACION DE APLICACIONES
TEMA:
POLIMORFISMO
DOCENTE:
ISC. OMAR EMMANUEL LARA JUAREZ
PINOS, ZACATECAS. JULIO DEL 2015
2. POLIMORFISMO
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
El sistema de tipos es importante en Polimorfismo
Para entender la importancia del tipado de datos, conveniente 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;
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.
A veces, a los lenguajes fuertemente tipados se les llama de "tipado estático" y a
los débilmente tipados se les llama "tipado dinámico".
Polimorfismo en objetos
Tal como funcionan 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
3. elementos de una clase determinada, solo aceptará que rellenemos sus casillas
con objetos de esa clase declarada.
Vehiculo[] misVehiculos = new Vehiculo[3];
Ppolimorfismo 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.
En concreto, en nuestro array de vehículos, gracias al polimorfismo podrás
contener en los elementos del array no solo vehículos genéricos, sino también
todos los objetos de clases hijas o derivadas de la clase "Vehiculo", osea objetos
de la clase "Coche", "Moto", "Bus" o cualquier hija que se haya definido.
En fin, 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, pero explicar todo eso no es el objetivo de este
artículo.
4. CONCLUSION
En conclusión 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.
Utilizando para la identificación de este una serie de puntos muy importantes que nos ayudan
a identificar el polimorfismo dentro de una clase.
También es el medio por el cual podemos relajar el sistema de tipos.
Las diferencias entre los tipos de lenguajes tipados y no tipados
No tipados Tipados
Los lenguajes no tipados, o
débilmente tipados, al definir una
variable no requieren de que se
les asigne un tipo de variable, es
mas pueden cambiar el tipo de
variable en cualquier momento,
creo que los casos mas conocido
se presentan en un lenguaje muy
popular. PHP, este lenguaje, no
es tipado, y no hay ningún
problema en que una variable
sea una Array y luego se
convierta en un entero o
un String.
Y pues digamos que los
lenguajes con tipado dinámico se
ubican en el medio, la variables
se pueden o no vincular a un tipo
o al inicializarlas reconocen el
tipo de variable.
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.