1. NOMBRE:
ADRIANA BERENICE RENOVATO CEJA
CARRERA:
INGENIERÍA EN. TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
MATRICULA:
481200555
GRADO Y GRUPO:
9° CUATRIMESTRE “A”
MATERIA:
PROGRAMACIÓN DE APLICACIONES
UNIDAD:
“CONCEPTOS AVANZADOS DE LA POO”
PROFESOR:
I.S.C OMAR EMMANUEL LARA JUÁREZ
LUGAR Y FECHA:
PINOS ZAC, 10 DE JULIO DEL 2015
U N I V E R S I D A D T E C N O L Ó G I C A D E L E S T A D O D E Z A C A T E C A S
U N I D A D A C A D É M I C A D E P I N O S
T E C N O L O G Í A S D E L A I N F O R M A C I Ó N Y C O M U N I C A C I Ó N
2. INTERFACES EN JAVA
Como sabemos en Java no existe la herencia múltiple, pudiendo heredar
solamente de una clase, las Interfaces son una gran herramienta para simular este
concepto......
Para empezar debemos saber que una Interface es una Clase completamente
Abstracta, como regla, sabemos que las clases abstractas poseen como mínimo
un método abstracto, pero hablando de una interface, todos sus métodos tienen
que serlo...
Las interfaces muchas veces son definidas como un tipo de contrato entre las
clases concretas que la implementen, ya que la clase que lo haga se encuentra
obligada a definir los métodos abstractos que la componen.
¿HERENCIA MÚLTIPLE?
Podemos decir que las interfaces simulan la herencia múltiple ya que una clase
puede implementar cualquier número de interfaces, además las interfaces pueden
heredar uno o más números de interfaces mediante la palabra extends, pero
jamás podrán heredar clases concretas...
En java se usa la palabra reservada implements para indicar que implementamos
una interface, la estructura general de una clase que implementa una interface es
la siguiente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
interface InterfacePrincipal {
public void metodoAbstracto();
public String otroMetodoAbstracto();
}
public class Principal implements InterfacePrincipal,otraInterface,otraMas{
public void metodoAbstracto() {
/**Implementación definida por la clase concreta*/
}
public String otroMetodoAbstracto() {
/**Implementación definida por la clase concreta*/
return "retorno";
3. CARACTERÍSTICAS DE LAS INTERFACES.
Todos los métodos de una interfaz son implícitamente public abstract, no
es necesario especificarlo en la declaración del mismo.
Todas las variables y atributos de una interfaz son implícitamente
constantes (public static final), no es necesario especificarlo en la declaración del
misma
Los métodos de una interfaz no pueden ser: static, final, strictfp ni native.
Una interfaz puede heredar (extends) de una o más interfaces.
Una interfaz no puede heredar de otro elemento que no sea una interfaz.
Una interfaz no puede implementar (implements) otra interfaz.
Una interfaz debe ser declarada con la palabra clave interface.
Los tipos de las interfaces pueden ser utilizados polimórficamente.
Una interfaz puede ser public o package (valor por defecto).
Los métodos toman como ámbito el que contiene la interfaz.
¿CUÁNDO UTILIZARLAS?
Su uso está muy ligado al concepto de herencia y cumple el mismo principio
que aplicamos al usar clases abstractas, lo que buscamos es establecer un
mecanismo donde podamos compartir características comunes entre clases
diferentes, además al igual que con clases abstractas nos aseguramos que los
16
17
18
19
20
21
22
23
24
25
26
27
}
public void metodoAbstractoDeOtraInterface() {
/**Implementación definida por la clase concreta*/
}
public void metodoAbstractoDeOtraMas() {
/**Implementación definida por la clase concreta*/
}
}
4. métodos y atributos solo están disponibles para las clases que las
implementen...
Veamos un Ejemplo.
En el diagrama de clases vemos 6 clases concretas y 2 interfaces, las clases
Humano y Animal son clases padre de "Hombre y Mujer" y "Perro y Gato"
respectivamente, ahora bien, Humano y Animal son clases diferentes con un
árbol de herencia marcado, pero ambas poseen características comunes que
podemos usar por medio de la interface AccionesGeneral.
Podemos decir que tanto un Hombre como un Gato pueden caminar, usando
para esto el método desplazarse (), donde cada clase dará el mecanismo de
desplazamiento, por ejemplo el hombre lo hace en 2 piernas mientras que el
gato en 4 patas (o dependiendo de la forma como lo realicen), y este mismo
concepto puede aplicarse a los otros métodos enmarcados en la
Interface Acción General que tanto Humanos como Animales comparten.
5. CONCLUSIÓN
La importancia del polimorfismo en la programación, generalmente el polimorfismo
es la habilidad de tomar diferentes formas o funciones de los parámetros
utilizados durante su invocación, esto permite tratar de la misma manera, como
objetos de la superclase, a múltiples objetos de la subclase seleccionando en cada
caso los métodos apropiados. El polimorfismo tiene el beneficio de simplicidad
hace que nuestro código sea más fácil de escribir y mucho más fácil de entender,
extensibilidad esto quiere decir que otras subclases pueden ser añadidas después
a los tipos que se hayan creado y los objetos ya creados también se pueden
seguir trabajando con el código existente.
DIFERENCIA:
Extends se usa para heredar de otra clase, e implements es para implementar
clases abstractas, las clases abstractas tienen declaración de funciones sin ser
implementadas por esa razón cuando usas implements tienes que sobrescribir
todas las funciones de la clase abstracta.