Está en la página 1de 6

UNIVERSIDAD DE LAS

FUERZAS ARMADAS
“ESPE”
INGENIERIA EN
ELECTRONICA Y
AUTOMATIZACION
Nombre: Lino Suquilanda Bryan Alberto Periodo: Marzo 2019-Julio 2019
Asignatura: Programación orientada a objetos NRC:4064
Fecha: 27-05-2019
1. Tema
Interfaces y Polimorfismo
2. Objetivos
2.1 Objetivo General
Utilizar interfaces en los códigos de los programas dentro de las sentencias de NetBeans,
para poder de optimizar el código y la utilización de polimorfismo desde la interfaz.
2.2 Objetivos Específicos
 Explicar la creación y la estructura para usar interfaces y su utilidad en la codificación de
los programas realizados en NetBeans.
 Distinguir la utilización de polimorfismo en el código de un programa con el código de
una interfaz.
 Analizar lo que ocurre con los métodos luego de aplicar polimorfismo al código
empleado.
3. Desarrollo
3.1 Marco Teórico
a. Interfaces
Una interface comprende un grupo de prototipos de métodos públicos sin
implementar código, de similar forma que los prototipos de métodos de las clases
abstractas. Además, se puede declarar constantes con visibilidad public, static y final
con su respectiva inicialización de datos. Los métodos de una interfaz representan
un comportamiento común de un grupo de objetos de varios tipos de clases y que no
necesariamente forman parte de una misma jerarquía.
(Mazón, Cartuche, & Rivas, 2015)

Un interfaz es una clase sin código, es decir, una clase con sus atributos y las
definiciones de sus métodos, pero sin código dentro de estos, como en la figura 1.
(Vozmediano, 2017)

Figura 1. Ejemplo de interface


Fuente: (Vozmediano, 2017)

1
Un interfaz por sí mismo no sirve para nada. Su utilidad es servir de molde para
formar otras clases que sí implementarán el código.
Las clases que implementan una interface deben definir el código de los métodos de
dicha interface, asumiendo de esta manera una conducta determinada. Una clase, a
diferencia de la herencia, puede implementar una o varias interfaces separadas por
una coma “,” y se ubica a la derecha del nombre de clase o en caso de derivación,
debe ser a la derecha del nombre de la superclase, como en la figura 2.
(Mazón, Cartuche, & Rivas, 2015)

Figura 2. Forma de ubicar más clases.


Fuente: (Mazón, Cartuche, & Rivas, 2015)

La interfaz de una clase está conformada por los métodos y atributos que el usuario
emplea para lograr que un objeto se comporte de cierta forma. Así, por ejemplo, la
interfaz de una lista está formada por los siguientes métodos:
 agregarAlFinal
 agregarAlInicio
 tomarElUltimo
 tomarElPrimero

Otro ejemplo son los métodos de la interfaz de una pila:


 push (para agregar un elemento en ella)
 pop (para sacar de ella un elemento)

Finalmente, los métodos de la interfaz de una cola:


 La operación formar
 La operación despachar

En este caso, la interfaz de la clase LectorDeTeclado está formada por los


siguientes métodos:
 capturarEntero()
 capturarDoble()
 capturarLinea()
 capturarArrDoble()

En Java es posible definir una interfaz sin asociarla a ninguna clase y se le da un


nombre. Se define cuáles métodos y cuáles atributos (static final) la conforman y,
al definir una clase, se puede especificar cuál o cuáles interfaces serán parte de esa
clase.
(Cervantes, Gómez, Pérez, & Nájera, 2016)

2
Una interfaz tiene las siguientes propiedades:
 Permite al programador establecer la forma que tendrá una clase, es decir, el
nombre de los métodos, la lista de argumentos de los métodos y sus tipos de
retorno.
 También puede contener atributos. Es importante mencionar que estos deben
ser static y final. La palabra static significa que siempre ocupa la misma
posición en memoria y por lo tanto todos los objetos instanciados usarán la
misma variable. La palabra final significa que no puede modificarse.
 Proporciona sólo una definición, jamás una implementación.
 Se utiliza para establecer un protocolo entre clases, es decir, establecer qué
métodos deben tener las clases que implementen la interfaz.
 Se implementa en un archivo *.java y sigue las mismas reglas de visibilidad
y reagrupamiento en paquetes que las clases.
(Cervantes, Gómez, Pérez, & Nájera, 2016)

b. Polimorfismo
Capacidad que tienen los objetos de clases diferentes para actuar frente al mismo
mensaje de formas distintas.
(Morero, 2000)
Este "palabro" se refiere a la posibilidad de crear varias versiones del mismo método,
de forma que se comporte de maneras diferentes dependiendo del estado del objeto
o de los parámetros de entrada.
(Vozmediano, 2017)
Polimorfismo significa muchas formas, y es justamente eso; una forma de dar a un
método un nombre que es compartido hacia arriba y hacia abajo en la jerarquía del
objeto, donde cada objeto de la jerarquía implementa el método en forma apropiada
a él mismo.
La diferencia entre una llamada a un método estático y una llamada a un método
abstracto, es la diferencia entre una decisión hecha ahora y una decisión que se hará
después.
Cuando se codifica un método estático, en esencia se está diciendo al compilador
"tú sabes lo que yo quiero, llámalo". Por otro lado, al hacer una llamada a un método
abstracto (virtual o dinámico), es como si se le dijera al compilador "todavía no
sabes lo que quiero, cuando llegue el momento, pide la forma que corresponda".
(Román, 2008)
El polimorfismo, se da en un ambiente de jerarquía de extensión de clases o
implementación de interfaces. Es decir, el polimorfismo es posible aplicarlo en
herencia de clases normales, en herencia de clases abstractas y en la implementación
de interfaces.
(Mazón, Cartuche, & Rivas, 2015)

3
Polimorfismo en interfaces
De una interface no es posible crear instancias (objetos) pero si referencias a objetos
de clases que implemente dicha interfaz, esto es posible gracias al polimorfismo,
como en el ejemplo de la figura 3.

Figura 3. Ejemplo de polimorfismo en interface


Fuente: (Mazón, Cartuche, & Rivas, 2015)

Ejemplo de aplicación de polimorfismo:


El ejemplo se implementan las clases derivadas Estudiante y Trabajador, pero
puntualmente su utilidad se evidencia en la clase TestHerencia, a continuación se
replica esta clase, para enfatizar que al crear referencias de la clase base Persona
como se aprecia en el arreglo p[ ], es posible crear instancias de clases hijas
(Estudiante y Trabajador) mediante la referencia de Persona, luego en el for se
recorre el arreglo p y se invoca al método polimórfico imprimir(), actuando en
función de la instancia respectiva a la que apunta cada elemento del arreglo. La
figura 4 lo representa:

4
Figura 4. Ejemplo de polimorfismo
Fuente: (Mazón, Cartuche, & Rivas, 2015)

El polimorfismo en programación orientada a objetos consiste en que un mismo


elemento puede adquirir varias formas. La manera más habitual en la que
encontramos el polimorfismo es en los métodos. Pueden existir varias versiones
del mismo método con distinta forma, esto es: el mismo nombre, pero distintos
parámetros, o distinto tipo devuelto. Por ejemplo, en el constructor de la clase
Persona en la figura 5:

Figura 5. Ejemplo para aplicar polimorfismo.


Fuente: (Vozmediano, 2017)

Este tipo de polimorfismo es resuelto por el intérprete comparando los parámetros


formales con los parámetros actuales que se usan en la llamada al método, y
ejecutando la versión del método que se corresponda con la llamada. Pero hay otra
forma de polimorfismo más compleja al tiempo que más potente, y es la que se
refiere al polimorfismo de los objetos pertenecientes a una clase base.
(Vozmediano, 2017)

4. Conclusiones:
- En cuanto a lo expuesto con anterioridad, se estableció que para crear una interface se
debe declarar de forma public, static o final y estas interfaces son una clase que contienen
sus atributos y métodos, pero que no contiene código de programación.
- Aunque la aplicación del polimorfismo no varía, el modo en que se aplica desde una
interfaz puede resultar un poco más oscuro y difícil de entender. Se expuso un sencillo
ejemplo para entender cómo funciona aplicado desde una interfaz.
- Se diferenció que los métodos y los objetos creados en las clases tienen la capacidad para
actuar de formas distintas frente al mismo mensaje.

5
5. Recomendaciones
- Se debe tener una idea sobre que conceptos están entrelazados para que así se pueda
aplicar el polimorfismo.
- Verificar que las clases compartan ciertos conceptos de interfaces y de polimorfismo
antes de ejecutarlos con el programa principal
- En última instancia, cabe recalcar que se debe tomar en cuenta el diagrama UML ya que
este nos entrega el diagrama con las relaciones que existen entre las interfaces y el
polimorfismo

6. Bibliografía
Cervantes, J., Gómez, M. d., Pérez, P. G., & Nájera, A. G. (2016). Introducción a la
programación orientada a objetos. Santa Fe Cuajimalpa: Espinoza Rubio.
Mazón, B., Cartuche, J., & Rivas, W. (2015). Fundamentos de Programación Orientada a
Objetos en java. Machala: Utmach.
Morero, F. (2000). Introducción a la OOP. España: Grupo EIDOS.
Román, L. L. (2008). Metodología de la Programación Orientada a Objetos. Sonora:
Alfaomega.
Vozmediano, A. M. (2017). JAVA para novatos. Murcia: Safe Creative.

También podría gustarte