polimorfismo 2

20
 Andy Cruz Villamayor R oberto Isaí Díaz García Manuel A. Madrigal Heredia José Alberto Jiménez Martínez Polimorfismo (POO)

Upload: miguel-angel-cuevas-valdez

Post on 14-Jul-2015

200 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 1/20

Andy Cruz Villamayor

Roberto Isaí Díaz GarcíaManuel A. Madrigal Heredia

José Alberto Jiménez Martínez

Polimorfismo

(POO)

Page 2: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 2/20

Índice:

I.-Introducción.II.-Definiciones.

II.I.-Ejemplo ordinario.

II.I.-Ejemplo POO.III.-Tipos de polimorfismo.

III.I.-Polimorfismo de sobrecarga.

III.II.-Polimorfismo paramétrico.III.III.- Polimorfismo de subtipado.

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

VII.-Conclusión.

Page 3: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 3/20

La palabra polimorfismo proviene del griego

y significa que posee varias formas diferentes.Este es uno de los conceptos esenciales de unaprogramación orientada a objetos. Así como laherencia está relacionada con las clases y sujerarquía, el polimorfismo se relaciona con los

métodos.

Page 4: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 4/20

Page 5: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 5/20

Definición

El es otro de los pilares fundamentales de la programación

orientadaa objetos. Es la capacidad de almacenar objetos de un determinado

tipo en variables de tipos antecesores del primero a costa, claro está, de sólopoderse a través de dicha variable a los miembros comunes a ambos tipos. Sinembargo, las versiones de los métodos virtuales a las que se llamaría a travésde esas variables no serían las definidas como miembros del tipo de dichas variables, sino las definidas en el verdadero tipo de los objetos que almacenan.

polimorfismo

Page 6: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 6/20

Ejemplo :polimorfismo, significa de muchas formas y es la capacidad que tienen objetosde 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 código.

Page 7: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 7/20

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 versión del método Cumpleaños() a la que se podría llamar a través de la variable de tipoPersona sería 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 edadpublic 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 Cumpleaños()

{

Console.WriteLine("Incrementada edad de persona");}

 // Constructor de Persona

public Persona (string nombre, int edad, string nif){

Nombre = nombre;Edad = edad;

NIF = nif;}

Page 8: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 8/20

}

class Trabajador: Persona

{ // Campo de cada objeto Trabajador que almacena cuánto 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 Cumpleaños()

{

Edad++;Console.WriteLine("Incrementada edad de trabajador");

}

public static void Main()

{

Persona p = new Trabajador("Josan", 22, "77588260-Z", 100000);

p.Cumpleaños();

 // p.Sueldo++; //ERROR: Sueldo no es miembro de Persona

}

}

Page 9: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 9/20

Tipos de polimorfismo:

>>Polimorfismo de sobrecarga.>>Polimorfismo paramétrico.>>Polimorfismo de inclusión.

Se clasifican en dos grandes clases;

Page 10: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 10/20

Polimorfismo de sobrecarga.

También conocido como: polimorfismo de plantillas, ad hoc.

Definición:

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 función "display". Esto significa que no necesitamospreocuparnos sobre el tipo de objeto con el que estamos

trabajando si todo lo que deseamos es verlo en la pantalla.

Page 11: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 11/20

Por lo tanto, el polimorfismo de

sobrecarga nos permite definir 

operadores cuyos comportamientos

varían de acuerdo a los parámetros

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

operación entre dos números enteros

(suma) o bien cuando se encuentra

entre dos cadenas de caracteres

(concatenación).

Page 12: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 12/20

Polimorfismo paramétrico.También conocido como: dinámico, universal .

Definición:

El polimorfismo paramétrico es la capacidad para definir varias funciones

utilizando el mismo nombre, pero usando parámetros diferentes (nombre y/o

tipo). El polimorfismo paramétrico selecciona automáticamente el métodocorrecto a aplicar en función del tipo de datos pasados en el parámetro.

Por lo tanto, podemos por ejemplo, definir varios métodos homónimos

de addition() efectuando una suma de valores.

El método int addition(int,int) devolvería la suma de dos números enteros.

float addition(float, float) devolvería la suma de dos flotantes.

char addition(char, char) daría por resultado la suma de dos caracteresdefinidos por el autor.

Page 13: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 13/20

Una signature es el nombre y tipo (estático) que se da a los argumentos de una

función. Por esto, una firma de método determina qué elemento se va a llamar.

Page 14: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 14/20

Polimorfismo de subtipado.También se le conoce como: inclusión, redefinición .

Definición:

La habilidad para redefinir un método en clases que se hereda de una clase

base se llama especialización. Por lo tanto, se puede llamar un método de objeto

sin tener que conocer su tipo intrínseco: esto es polimorfismo de subtipado.

Permite no tomar en cuenta detalles de las clases especializadas de una familia

de objetos, enmascarándolos con una interfaz común (siendo esta la clase

básica).

Page 15: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 15/20

Imagine un juego de ajedrez con los

objetos rey , reina, alfil , caballo, torre y peón,cada uno heredando el objeto pieza.

El método movimiento podría, 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.

Page 16: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 16/20

Para que se usa;S

e utiliza el polimorfismo en el uso de el operador + tanto comopara sumar, como para declarar la impresión de variables, ya que

como ejemplo en java se imprime de la siguiente manera:

System.out.println("Aquí se imprime la variable: "+variable);

Herencia:

 A través de ella los diseñadores pueden

construir nuevas clases partiendo de una

  jerarquía de clases ya existente

(comprobadas y verificadas) evitando conello el rediseño, la modificación y

verificación de la parte ya implementada.

La herencia facilita la creación de objetos a

partir de otros ya existentes, obteniendo

características (métodos y atributos)

similares a los ya existentes.

Page 17: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 17/20

Programadores

Hoy en día el programador tiene la tarea mas fácil 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 programación se

esta vanando a niveles antes no imaginados.

Page 18: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 18/20

Software mas alisado; Así como ya se explico estas característica es propia de POO

Page 19: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 19/20

Conclusión

 Y o digo que polimorfismo es la capacidad que tiene un objeto dediferentes 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 método, este seaplica como a funciones y tipo de objetos. *hay polimorfismo dinamico y estático, para usar polimorfismo tenemos que ocupar la palabra"Casting"--> Molde, por lo que el termino literal es Hacer un Molde

Page 20: POLIMORFISMO 2

5/12/2018 POLIMORFISMO 2 - slidepdf.com

http://slidepdf.com/reader/full/polimorfismo-2 20/20

BIBLIOGRAFIA:

http://technolifeandmore.blogspot.com/2011/02/reporte-3-herencia-y-polimorfismo-en-el.html

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

http://poo207av.blogdiario.com/1177712040/

http://www.devjoker.com/contenidos/Tutorial-C/135/Polimorfismo.aspx

http://www.alegsa.com.ar/Dic/polimorfismo.php

http://es.wikipedia.org/wiki/Polimorfismo_(inform%C3%A1tica)

http://israel11-90.blogspot.com/2011/06/poopolimorfismo-y-herencia.html