Unidad 4 Poo Polimorfismo

Share Embed Donate


Short Description

itt...

Description

Unidad IV Polimorfismo

Programación Orientada a Objetos

IV Polimorfismo 4.1 Polimorfismo El polimorfismo significa múltiples formas y es una de las características más importantes de la programación orientada a objetos. Es la capacidad para enviar el mismo mensaje a objetos diferentes donde cada uno de ellos responde de un modo específico. 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 término polimorfismo se utiliza para describir, cómo objetos de diferentes clases se manipulan de diferente forma a través de los mismos m ismos mensajes.

4.2 Clases Abstractas Cuando se define una clase, clase, esta puede representar un concepto abstracto y como tal no se puede puede instanciar (crear objetos), por ejemplo, cuando hablamos del término “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 diseña para ser genérica no requiere crear objetos de ella, estas son clases abstractas, la razón de su existencia es proporcionar los atributos y comportamiento que serán útiles a todas sus subclases y se define calificándola de manera explícita con la palabra reservada abstract , por ejemplo: public abstract class persona {…} La subclase de una clase abstracta debe implementar los métodos abstractos de la clase padre. Si no lo hiciera, deberá declararse también como clase abstracta. Una clase abstracta puede contener cualquier tipo tipo de elemento y además puede contener métodos métodos abstractos. Un método 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 Tecnológico de Toluca

Lic. Alma Patricia Vásquez González

Unidad IV Polimorfismo

Programación 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.

Definición y Creación de Paquetes Un paquete es una colección 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 específicos 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 confusión. c) Permiten privacidad para clases, métodos y atributos que no serán visibles fuera del paquete.

Declaración de un Paquete El paquete es creado cuando la clase que lo utiliza se compila agregando la clase e n este momento el paquete se define con la palabra reservada package que se escribe al inicio del código de la clase por ejemplo: package ABSTRACTAS;

public abstract class persona{ int am, mn, an; 2 Instituto Tecnológico de Toluca

Lic. Alma Patricia Vásquez González

Unidad IV Polimorfismo

Programación 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 número 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 acción 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 jerarquía de clases. 3 Instituto Tecnológico de Toluca

Lic. Alma Patricia Vásquez González

Unidad IV Polimorfismo

Programación Orientada a Objetos

En general una interfaz es un sistema o un dispositivo que utiliza entidades no relacionadas que interactúan. La interfaz en Java tiene la propiedad de poder obtener un efecto similar a la herencia múltiple. No se pueden crear instancias u objetos de ella. Una interfaz define un conjunto de métodos así como de datos pero no las implementaciones de los métodos. Una interfaz se podría considerar como una clase totalmente abstracta que tiene las siguientes características: 1.-Todos los miembros son públicos aunque no hay necesidad de declararlos así. 2.-Todos los métodos 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 estáticas.

Definición y Declaración de una Interfaz La definición de la interfaz consta de dos componentes, la declaración de la interfaz y e l cuerpo de la interfaz. Declaración de interfaz

Modificador interface Nombre_Interface{ Cuerpo de Interfaz

Constante

public static final tipo_dato Nombre_constante=Valor;

Método

public tipo_dato Nombre_método(); }

Las clases abstractas y las interfaces se pueden utilizar para conseguir programación genérica (uso de plantillas). Normalmente el uso de una clase abstracta es mayor que el de una interfaz.

Implementación de una Interfaz Para indicar que una clase implementa una Inte rfaz se utiliza la palabra reservada implements. La clase que implementa la interfaz debe implementar todos los métodos definidos por la Interfaz. Ejemplo: Declaración de Interfaz: Public interface Volador{ Public void aterrizar(); Public void volar(); }

4 Instituto Tecnológico de Toluca

Lic. Alma Patricia Vásquez González

Unidad IV Polimorfismo

Programación Orientada a Objetos

Implementación: 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 Polimórficas Una Variable Polimórfica puede contener referencias a objetos de diferentes clases. Una variable referencia es polimórfica cuando su tipo de declaración no coincide con el tipo del objeto al que referencia. Son variables polimórficas, 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. ¨ ¿Cómo definir la clase Agenda? ¨ ¿Cómo 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 Reutilización La derivación o Herencia de clases consigue la reutilización efectiva del código de la clase base para sus necesidades. Si se tiene una clase base totalmente depurada, la herencia ayuda a reutilizar ese código en una nueva clase. No es necesario comprender el código fuente de la clase original, sino sólo lo que hace. Cuando heredamos de una clase existente, e stamos re-usando código (métodos y atributos).

5 Instituto Tecnológico de Toluca

Lic. Alma Patricia Vásquez González

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF