Sunteți pe pagina 1din 5

Unidad IV Polimorfismo

Programacin Orientada a Objetos

IV Polimorfismo
4.1 Polimorfismo
El polimorfismo significa mltiples formas y es una de las caractersticas ms importantes de la programacin
orientada a objetos. Es la capacidad para enviar el mismo mensaje a objetos diferentes donde cada uno de ellos
responde de un modo especfico.
Existen varias formas de polimorfismo en java. Una de las formas en la que se representa el polimorfismo es por
medio de la sobrecarga.
El trmino polimorfismo se utiliza para describir, cmo objetos de diferentes clases se manipulan de diferente
forma a travs de los mismos mensajes.

4.2 Clases Abstractas


Cuando se define una clase, esta puede representar un concepto abstracto y como tal no se puede instanciar
(crear objetos), por ejemplo, cuando hablamos del trmino comida no hablamos de algo en concreto, sin
embargo, si hablamos de una manzana representamos una idea tangible. Las clases abstractas son tiles para
definir a otras clases que se utilizan para instanciar objetos.
Una clase que se disea para ser genrica no requiere crear objetos de ella, estas son clases abstractas, la razn
de su existencia es proporcionar los atributos y comportamiento que sern tiles a todas sus subclases y se
define calificndola de manera explcita con la palabra reservada abstract, por ejemplo:
public abstract class persona {}
La subclase de una clase abstracta debe implementar los mtodos abstractos de la clase padre. Si no lo hiciera,
deber declararse tambin como clase abstracta.
Una clase abstracta puede contener cualquier tipo de elemento y adems puede contener mtodos abstractos.
Un mtodo abstracto es aquel que no tiene cuerpo y se identifica con la palabra reservada abstract, por
ejemplo:

public abstract class Persona {


int a_nac;
public abstract void calc_edad();
}

1
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

Unidad IV Polimorfismo

Programacin Orientada a Objetos

public class Alumno extends Persona


{
public int calc_edad()
{
return 2009-an;
}
}
Las clases a partir de las cuales s se pueden crear instancias u objetos se denominan clases concretas.

Definicin y Creacin de Paquetes


Un paquete es una coleccin de clases que se compilan en una misma unidad, proporcionan un medio adecuado
para organizar las clases. Se pueden clasificar las clases desarrolladas en paquetes especficos y distribuir estos a
otras personas por lo que pueden verse como bibliotecas compartidas por varios usuarios.
El lenguaje java viene con un gran conjunto de paquetes que se pueden utilizar para construir aplicaciones. Por
ejemplo el paquete java.io; agrega las clases de entrada y salida de datos a un programa. Un paquete puede
contener otros paquetes.
La referencia a una clase que se encuentra dentro de un paquete se hace utilizando el nombre completo, por
ejemplo:
Java.awt.Button;
Nos indica que Button es una clase del paquete AWT y que AWT es un paquete dentro del paquete java.
Los paquetes son unidades encapsuladas que pueden contener clases, interfaces y otros paquetes, son tiles
porque:
a) Permiten asociar clases relacionadas e interfaces.
b) Resuelven conflictos de nombres que pueden producir confusin.
c) Permiten privacidad para clases, mtodos y atributos que no sern visibles fuera del paquete.

Declaracin de un Paquete
El paquete es creado cuando la clase que lo utiliza se compila agregando la clase en este momento el paquete se
define con la palabra reservada package que se escribe al inicio del cdigo de la clase por ejemplo:
package ABSTRACTAS;
public abstract class persona{
int am, mn, an;
2
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

Unidad IV Polimorfismo

Programacin Orientada a Objetos

Public abstract int calc_edad();


}
package CONCRETAS;
public class Alumno extends persona
{
public int calc_edad()
{
return 2009-an;
}
}

Acceso a los elementos del Paquete


Existen dos formas para acceder a los elementos de un paquete.
1. Nombrar totalmente el elemento incluyendo el paquete por ejemplo:
package CONCRETAS;
Public class Alumno extends ABSTRACTAS.persona
{}
2. Utilizando sentencias import
import ABSTRACTAS.persona;
public class Alumno extends persona
{}
Si se desea importar un nmero considerable de elementos del paquete en lugar de colocar una lista de
sentencias import se pueden importar todos los elementos del paquete en una sola accin utilizando el caracter
* .
Por ejemplo:
import java.io.*;
import ABSTRACTAS.persona;
public class Alumno extends persona
{}

4.3 Interfaces
El lenguaje java soporta interfaces que se utilizan para definir un protocolo de comportamiento que se puede
implementar por cualquier clase en cualquier parte de la jerarqua de clases.
3
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

Unidad IV Polimorfismo

Programacin Orientada a Objetos

En general una interfaz es un sistema o un dispositivo que utiliza entidades no relacionadas que interactan.
La interfaz en Java tiene la propiedad de poder obtener un efecto similar a la herencia mltiple.
No se pueden crear instancias u objetos de ella.
Una interfaz define un conjunto de mtodos as como de datos pero no las implementaciones de los mtodos.
Una interfaz se podra considerar como una clase totalmente abstracta que tiene las siguientes caractersticas:
1.-Todos los miembros son pblicos aunque no hay necesidad de declararlos as.
2.-Todos los mtodos son abstractos, especificando su modificador de acceso sin necesidad de declarar
abstract.
3.-Todos los campos o atributos son de tipo static final es decir constantes estticas.

Definicin y Declaracin de una Interfaz


La definicin de la interfaz consta de dos componentes, la declaracin de la interfaz y el cuerpo de la interfaz.
Declaracin de interfaz
Cuerpo de Interfaz

Constante
Mtodo

Modificador interface Nombre_Interface{


public static final tipo_dato Nombre_constante=Valor;
public tipo_dato Nombre_mtodo();
}

Las clases abstractas y las interfaces se pueden utilizar para conseguir programacin genrica (uso de plantillas).
Normalmente el uso de una clase abstracta es mayor que el de una interfaz.

Implementacin de una Interfaz


Para indicar que una clase implementa una Interfaz se utiliza la palabra reservada implements.
La clase que implementa la interfaz debe implementar todos los mtodos definidos por la Interfaz.
Ejemplo:
Declaracin de Interfaz:
Public interface Volador{
Public void aterrizar();
Public void volar();
}

4
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

Unidad IV Polimorfismo

Programacin Orientada a Objetos

Implementacin:
public class Aeroplano implements Volador{
public void aterrizar(){
// Descender a la tierra suavemente y desacelerar, frenando hasta tocar tierra.
}
public void volar(){
// Mantener los motores acelerados
}
}

4.4 Variables Polimrficas


Una Variable Polimrfica puede contener referencias a objetos de diferentes clases.
Una variable referencia es polimrfica cuando su tipo de declaracin no coincide con el tipo del objeto al que
referencia.
Son variables polimrficas, las del tipo de la clase padre, que son capaces de referenciar a objetos de cualquiera
de sus subclases.
Ejemplo: Para implementar una agenda que almacene 500 datos de Alumnos o Empleados.
Cmo definir la clase Agenda?
Cmo definir el array que lo almacene?
Tipo Alumno?
Tipo Empleado?
Dos arrays independientes? Mal uso memoria!
Lo correcto es crear los objetos de acuerdo a la necesidad, considerando que la clase padre es Persona y
tiene dos subclases Alumno y Empleado:
Persona Objetos[0] = new Empleado();
Persona Objetos[1] = new Alumno();

4.5 Reutilizacin
La derivacin o Herencia de clases consigue la reutilizacin efectiva del cdigo de la clase base para sus
necesidades. Si se tiene una clase base totalmente depurada, la herencia ayuda a reutilizar ese cdigo en una
nueva clase. No es necesario comprender el cdigo fuente de la clase original, sino slo lo que hace. Cuando
heredamos de una clase existente, estamos re-usando cdigo (mtodos y atributos).

5
Instituto Tecnolgico de Toluca

Lic. Alma Patricia Vsquez Gonzlez

S-ar putea să vă placă și