UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN
Prog...
UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN
POLI...
UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN
El p...
UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN
Ento...
UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN
CONC...
UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN
Los ...
of 6

Polimorfismo1

Published on: Mar 4, 2016
Source: www.slideshare.net


Transcripts - Polimorfismo1

  • 1. UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN Programación De Aplicaciones Tema POLIMORFISMO Nombre de alumno: Rocío Marbelín Zapata Palomo Grado: 9 Grupo: “A” Nombre del Docente : ISC. Omar Emmanuel Lara Juárez Fecha de entrega : 03/07/2015
  • 2. UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN POLIMORMISMO 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. El polimorfismo se puede implementar en jerarquías de clasificación que se dan a través de la herencia. Por ejemplo, en 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? Un lenguaje fuertemente tipado, como es el caso de Java o C, es cuando se define una variable, siempre el tipo de datos va a contener dicha variable. Por ejemplo: int miNumero;. Así le indicamos que la variable declarada "miNumero" va a contener siempre un entero. Se puede asignar diversos valores, pero siempre deben de ser números enteros. De lo contrario el compilador lanzará un mensaje de error y permitirá compilar el programa que se ha 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 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. Ejemplo: Vehiculo[] misVehiculos = new Vehiculo[3]; Esa variable misVehiculos es un array y en ella he declarado que el contenido de las casillas serán objetos de la clase "Vehiculo".
  • 3. UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN El 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. En el array de vehículos, gracias al polimorfismo se puede contener 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. ¿Para qué nos sirve en la práctica el polimorfismo? Imagina una clase "Cine" creando un método que se llama "reproducir()". Este método podrá recibir como parámetro aquello que quieras emitir en una sala de cine y podrán llegar objetos de la clase "Película" y otras veces objetos de la clase "Documental”. Debido a que los métodos declaran los tipos de los parámetros que recibes, debes que hacer algo como esto: reproducir(Pelicula peliculaParaReproducir) Pero si luego tienes que reproducir documentales, tendrás que declarar: reproducir(Documental documentaParaReproducir) VEHICULO Coche Bus Moto Clase Padre ClasesHijaso Derivadas
  • 4. UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN Entonces lo que te permiten hacer los lenguajes es declarar el método "reproducir()" indicando que el parámetro que vas a recibir es un objeto de la clase padre "Largometraje", pero donde realmente el lenguaje y compilador te aceptan cualquier objeto de la clase hija o derivada, "Película", "Documental", etc. reproducir(Largometraje elementoParaReproducir) Volviendo a la clase Vehiculo, 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. 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 que hereden de la clase Vehículo, osea, coches, motos, buses, etc. Esa relajación del sistema de tipos para aceptar una gama de objetos diferente es lo que llamamos polimorfismo.
  • 5. UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN CONCLUSIÓN El polimorfismo es en realidad algo muy básico. Realmente, cuando estamos aprendiendo Programación Orientada a Objetos, muchos estudiantes nos hacemos un embolado tremendo al tratar de entender el concepto, pero en su base es algo extremadamente sencillo. En programación orientada a objetos se denomina polimorfismo a la capacidad que tienen objetos de diferentes clases de responder al mismo mensaje o evento. Esto significa que puede haber muchos mensajes con el mismo nombre, en diferentes clases. Cada Clase responde al mensaje con su código propio (o método). También se puede aplicar a la propiedad que poseen algunas operaciones de tener un comportamiento diferente dependiendo del objeto (o tipo de dato) sobre el que se aplican. El polimorfismo sólo es aplicable si cualquiera de los posibles tipos de objetos que se invoquen tienen definida la operación empleada, y los tipos de datos de entrada requeridos y los valores devueltos, más allá de cómo se empleen o calculen, son compatibles entre sí. Los tipos de datos que se manejan en un determinado lenguaje de programación, se refiere a los tipos y la forma en que deben usarse, cuando estamos aprendiendo a programar en pseudocódigo no utilizamos tipado, es decir que ninguna de las variables que definimos están ligadas a algún tipo de variable, “simplemente son variables”. Los lenguajes fuertemente tipados son más difíciles de trabajar, pero son más comunes y en muchos lugares más “promocionados”. Los lenguajes tipados incrementan el tiempo de desarrollo y son más difíciles de aprender, Los datos 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.
  • 6. UNIVERSIDAD TECNONOLÓGICADEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍASDE LA INFORMACIÓNY COMUNICACIÓN 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, creo que los casos más 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.

Related Documents