Sei sulla pagina 1di 20

Andy Cruz Villamayor Roberto Isa Daz Garca Manuel A.

Madrigal Heredia Jos Alberto Jimnez Martnez


Polimorfismo (POO)

ndice:
I.-Introduccin. II.-Definiciones.
II.I.-Ejemplo ordinario. II.I.-Ejemplo POO.

III.-Tipos de polimorfismo.
III.I.-Polimorfismo de sobrecarga. III.II.-Polimorfismo paramtrico. III.III.- Polimorfismo de subtipado.

IV.- Para que se usa. V.-Programadores. VI.- Software mas utilizados. VII.-Conclusin.

La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes. Este es uno de los conceptos esenciales de una programacin orientada a objetos. As como la herencia est relacionada con las clases y su jerarqua, el polimorfismo se relaciona con los mtodos.

Definicin

El polimorfismo es otro de los pilares fundamentales de la programacin orientada a objetos. Es la capacidad de almacenar objetos de un determinado tipo en variables de tipos antecesores del primero a costa, claro est, de slo poderse a travs de dicha variable a los miembros comunes a ambos tipos. Sin embargo, las versiones de los mtodos virtuales a las que se llamara a travs de esas variables no seran las definidas como miembros del tipo de dichas variables, sino las definidas en el verdadero tipo de los objetos que almacenan.

Ejemplo :
polimorfismo, significa de muchas formas y es la capacidad que tienen objetos de diferentes clases(como una clase base "aves" o una clase derivada "canarios") de responder al mismo mensaje, eso nos quiere decir que puede haber muchos mensajes con el mismo nombre, en diferente clase, cada clase responde al mensaje con su propio cdigo.

Ejemplo POO:
Una variable de tipo Persona puede usarse para almacenar objetos de tipo Trabajador. En esos casos el campo Sueldo del objeto referenciado por la variable no ser accesible, y la versin del mtodo Cumpleaos() a la que se podra llamar a travs de la variable de tipo Persona sera la definida en la clase Trabajador, y no la definida en Persona:
using System; class Persona { // Campo de cada objeto Persona que almacena su nombre public string Nombre; // Campo de cada objeto Persona que almacena su edad public int Edad; // Campo de cada objeto Persona que almacena su NIF public string NIF; // Incrementa en uno la edad del objeto Persona public virtual void Cumpleaos() { Console.WriteLine("Incrementada edad de persona"); } // Constructor de Persona public Persona (string nombre, int edad, string nif) { Nombre = nombre; Edad = edad; NIF = nif; }

} class Trabajador: Persona { // Campo de cada objeto Trabajador que almacena cunto gana int Sueldo; Trabajador(string nombre, int edad, string nif, int sueldo) : base(nombre, edad, nif) {// Inicializamos cada Trabajador en base al constructor de Persona Sueldo = sueldo; } public override Cumpleaos() { Edad++; Console.WriteLine("Incrementada edad de trabajador"); } public static void Main() { Persona p = new Trabajador("Josan", 22, "77588260-Z", 100000); p.Cumpleaos(); // p.Sueldo++; //ERROR: Sueldo no es miembro de Persona } }

Tipos de polimorfismo:
>>Polimorfismo de sobrecarga. >>Polimorfismo paramtrico. >>Polimorfismo de inclusin.

Se clasifican en dos grandes clases;

Polimorfismo de sobrecarga.
Tambin conocido como: polimorfismo de plantillas, ad hoc.
Definicin:
El polimorfismo de sobrecarga ocurre cuando las funciones del mismo nombre existen, con funcionalidad similar, en clases que son completamente independientes una de otra (stas no tienen que ser clases secundarias de la clase objeto). Por ejemplo, la clase complex, la clase image y la clase link pueden todas tener la funcin "display". Esto significa que no necesitamos preocuparnos sobre el tipo de objeto con el que estamos trabajando si todo lo que deseamos es verlo en la pantalla.

Por lo tanto, el polimorfismo de sobrecarga nos permite definir operadores cuyos comportamientos varan de acuerdo a los parmetros que se les aplican. As es posible, por ejemplo, agregar el operador + y hacer que se comporte de manera distinta cuando est haciendo referencia a una operacin entre dos nmeros enteros (suma) o bien cuando se encuentra entre dos cadenas de caracteres (concatenacin).

Polimorfismo paramtrico.
Tambin conocido como: dinmico, universal .
Definicin:
El polimorfismo paramtrico es la capacidad para definir varias funciones utilizando el mismo nombre, pero usando parmetros diferentes (nombre y/o tipo). El polimorfismo paramtrico selecciona automticamente el mtodo correcto a aplicar en funcin del tipo de datos pasados en el parmetro. Por lo tanto, podemos por ejemplo, definir varios mtodos homnimos de addition() efectuando una suma de valores. El mtodo int addition(int,int) devolvera la suma de dos nmeros enteros. float addition(float, float) devolvera la suma de dos flotantes. char addition(char, char) dara por resultado la suma de dos caracteres definidos por el autor.

Una signature es el nombre y tipo (esttico) que se da a los argumentos de una funcin. Por esto, una firma de mtodo determina qu elemento se va a llamar.

Polimorfismo de subtipado.
Tambin se le conoce como: inclusin, redefinicin .
Definicin:
La habilidad para redefinir un mtodo en clases que se hereda de una clase base se llama especializacin. Por lo tanto, se puede llamar un mtodo de objeto sin tener que conocer su tipo intrnseco: esto es polimorfismo de subtipado. Permite no tomar en cuenta detalles de las clases especializadas de una familia de objetos, enmascarndolos con una interfaz comn (siendo esta la clase bsica).

Imagine un juego de ajedrez con los objetos rey, reina, alfil, caballo, torre y pen, cada uno heredando el objeto pieza. El mtodo movimiento podra, usando polimorfismo de subtipado, hacer el movimiento correspondiente de acuerdo a la clase objeto que se llama. Esto permite al programa realizar el movimiento de pieza sin tener que verse conectado con cada tipo de pieza en particular.

Para que se usa;


Se utiliza el polimorfismo en el uso de el operador + tanto como para sumar, como para declarar la impresin de variables, ya que como ejemplo en java se imprime de la siguiente manera: System.out.println("Aqu Herencia: se imprime la variable: "+variable);

A travs de ella los diseadores pueden construir nuevas clases partiendo de una jerarqua de clases ya existente (comprobadas y verificadas) evitando con ello el rediseo, la modificacin y verificacin de la parte ya implementada. La herencia facilita la creacin de objetos a partir de otros ya existentes, obteniendo caractersticas (mtodos y atributos) similares a los ya existentes.

Programadores
Hoy en da el programador tiene la tarea mas fcil gracias a la POO y sus pilares como en este caso el polimorfismo, pero por otro lado se ve abrumado a los cambios constantes del software ya que gracias a este tipo de programacin se esta vanando a niveles antes no imaginados.

Software mas alisado;


As como ya se explico estas caracterstica es propia de POO

Conclusin
Yo digo que polimorfismo es la capacidad que tiene un objeto de diferentes clases a responder a un mismo mensaje, es decir que pueden haber muchos mensajes con el mismo nombre pero con diferente clase y cada clase puede responder a su mensaje con su propio mtodo, este se aplica como a funciones y tipo de objetos. *hay polimorfismo dinamico y esttico, para usar polimorfismo tenemos que ocupar la palabra "Casting"--> Molde, por lo que el termino literal es Hacer un Molde

BIBLIOGRAFIA:
http://es.kioskea.net/contents/poo/polymorp.php3

http://www.devjoker.com/contenidos/Tutorial-C/135/Polimorfismo.aspx
http://poo207av.blogdiario.com/1177712040/
http://technolifeandmore.blogspot.com/2011/02/reporte-3-herencia-y-polimorfismo-en-el.html

http://www.alegsa.com.ar/Dic/polimorfismo.php http://israel11-90.blogspot.com/2011/06/poopolimorfismo-y-herencia.html
http://es.wikipedia.org/wiki/Polimorfismo_(inform%C3%A1tica)

Potrebbero piacerti anche