You are on page 1of 4

Ingeniera en Sistemas Computacionales Programacin Orientada a Objetos Tarea 1 Balleza Garca Viridiana N Control: 12590386

Herencia. La herencia es especfica de la programacin orientada a objetos, donde una clase nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se denomina subclases) proviene del hecho de que la subclase (la nueva clase creada) contiene los atributos y mtodos de la clase primaria. La principal ventaja de la herencia es la capacidad para definir atributos y mtodos nuevos para la subclase, que luego se aplican a los atributos y mtodos heredados. Esta particularidad permite crear una estructura jerrquica de clases cada vez ms especializada. La gran ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase existente. Como resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que puede especializarse a voluntad.

Polimorfismo. 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 Polimorfismo Es una caracterstica que resulta de gran ayuda en programacin pues facilita la claridad y consistencia del cdigo, aunque es un concepto bastante genrico (y frecuentemente malinterpretado). Se conoce con este nombre el hecho de que un mtodo tiene el mismo nombre y resulta en el mismo efecto bsico pero est implementado de forma distinta en las distintas clases de una jerarqua.(9)

Ingeniera en Sistemas Computacionales Programacin Orientada a Objetos Tarea 1 Balleza Garca Viridiana N Control: 12590386

Definicin de polimorfismo 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. En general, hay tres tipos de polimorfismo: Polimorfismo de sobrecarga Polimorfismo paramtrico (tambin llamado polimorfismo de plantillas) Polimorfismo de inclusin (tambin llamado redefinicin o subtipado)

Polimorfismo de sobrecarga 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 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.

Ingeniera en Sistemas Computacionales Programacin Orientada a Objetos Tarea 1 Balleza Garca Viridiana N Control: 12590386

Una signatura 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 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.

Clase abstracta. Hay ocasiones, cuando se desarrolla una jerarqua de clases en que algn comportamiento est presente en todas ellas pero se materializa de forma distinta para cada una. Por ejemplo, pensemos en una estructura de clases para manipular figuras geomtricas. Podramos pensar en tener una clase genrica, que podra llamarse FiguraGeometrica y una serie de clases que extienden a la anterior que podran ser Circulo, Poligono, etc. Podra haber un mtodo dibujar dado que sobre todas las figuras puede llevarse a cabo esta accin, pero las operaciones concretas para llevarla a cabo dependen del tipo de figura en concreto (de su clase). Por otra parte la accin dibujar no tiene sentido para la clase genrica FiguraGeometrica, porque esta clase representa una abstraccin del conjunto de figuras posibles. Para resolver esta problemtica Java proporciona las clases y mtodos abstractos. Un mtodo abstracto es un mtodo declarado en una clase para el cual esa clase no proporciona la implementacin (el cdigo). Una clase abstracta es una clase que tiene al menos un mtodo abstracto. Una clase que extiende a una clase abstracta

Ingeniera en Sistemas Computacionales Programacin Orientada a Objetos Tarea 1 Balleza Garca Viridiana N Control: 12590386

debe implementar los mtodos abstractos (escribir el cdigo) o bien volverlos a declarar como abstractos, con lo que ella misma se convierte tambin en clase abstracta.

Concepto de una clase genrica en java. En el momento de escribir una clase se debe conocer con qu tipo de datos va a interactuar, sin embargo esto no siempre es conocido. Por lo tanto se debera poder definir una clase con la ayuda de un contenedor al cual nos referimos como si fuera el tipo sobre el que opera la clase. La definicin actual de la clase es creada una vez que declaramos un objeto en particular. Los tipos genricos, tambin llamados tipos parametrizados, permiten definir un tipo sin especificar todos los tipos que ste usa. Estos sern suministrados como parmetros en punto de instanciacin. Los cambios son realizados por tanto en tiempo de compilacin. Los tipos parametrizados se utilizan especialmente para implementar tipos abstractos de datos: pilas, colas, anillos, bolsas y otros que permiten almacenar distintos tipos de elementos segn sean instanciados en tiempo de compilacin. Los tipos genricos han sido usados por otros lenguajes durante aos, como por ejemplo la plantillas en C++, tipos genricos en Ada, polimorfismo paramtrico en ML y Haskell, y ahora, debido a la demanda popular, los tipos genricos estn siendo aadidos en Java 1.5.

Bibliografa. 1.- Enciclopedia del lenguaje C. Fco Javier Ceballos Sierra, Editorial Computec. 2. - METODOLOGA DE LA PROGRAMACIN. Diagramas de flujo, Algoritmos y Programacin estructurada. Luis Joyanes Aguilar, McGraw-Hill 3. - An introduction to Object- Oriented Programming. Timothy Budd. Addison Wesley Publishing Company.

You might also like