Está en la página 1de 19

Interfaces

Ing. Tatiana Gualotuña


Objetivos
 Determinar la potencialidad de Interfaces en Java y su
aplicabilidad para herencia múltiple
 Diferenciar entre clases abstractas y clases interfaces
Interfaz

3
Interfaz
 Una interfaz en Java es una clase en la que todos sus
métodos son abstractos. En ellas se especifica qué se
debe hacer pero no su implementación. Serán las clases
que implementen estas interfaces las que implementen
el comportamiento de los métodos.
 proporciona dos palabras reservadas para trabajar con

interfaces: interface e implements.


5
Interfaces
 Una interfaz en Java es una colección de métodos sin
sus implementaciones con un nombre. Una
interface también puede declarar constantes. Por
cuanto una interface es simplemente una lista de
métodos sin implementación, (métodos abstractos).
 Las interfaces están asociadas a comportamiento.
Declaración
modificador_acceso interface NombreInterfaz
{
....
}

 modificador_acceso puede ser public o de no existir, siendo


entonces por defecto package.
 Los atributos que definamos en el cuerpo de la interfaz serán
atributos de tipo constante (final) y static en las clases en las
que se implemente.
 Todos los métodos son abstractos (no se implementa ninguno)
Implementación
 modificador_acceso NombreClase implements
NombreInterfaz1 [, NombreInterfaz2]

 Una clase puede implementar varias interfaces,


separando los nombres por comas y sólo puede
extender una clase. Es lo más parecido que tiene Java a
la herencia múltiple.
9
Ejemplo
 Definición

interface Nave {
public static final int VIDA = 100;

public abstract void moverPosicion (int x, int y);


public abstract void disparar();
.....
}
Ejemplo
 Implementación

public class NaveJugador implements Nave {


public void moverPosicion (int x, int y){
//Implementación del método
}

public void disparar(){


//Implementación del método
}

....
}
Interfaces
Interfaces
Referencias a interfaces
 Es posible crear referencias a interfaces, pero las
interfaces no pueden ser instanciadas. Una referencia a
una interface puede ser asignada a cualquier objeto que
implemente la interface.
 La definición de un interfaz no tiene constructor, por lo

que no es posible invocar el operador new sobre un tipo


interfaz.
Laboratorio 1
Laboratorio 2
 Se tiene una clase abstracta Persona que tiene como
atributos nombre y edad
 Una clase interfase Enfermo que tiene métodos:

tomarTemperatura, tomar Medicamentos


 Una clase Empleado es una persona y esta enferma.

Posee atributos sueldo y dirección.

16
Diferencias entre interface y clase
abstracta
 En la interface todo método es abstracto y público sin necesidad de
declararlo, por lo tanto no implementará ningún método que
declara.

 Las variables declaradas en una interface serán variables de clase y


nunca de instancia por lo que su valor será constante en todas las
instancias que se creen de la clase que implementa una interface.

 Una interface se implementa (implements) no se extiende (extends)

 Una clase puede implementar más de un interfaz, pero sólo puede


extender de una clase (es lo más parecido que tiene Java a la herencia
múltiple)
Taller
 Se plantea desarrollar un programa Java que permita
representar la siguiente situación. Una instalación deportiva es
un recinto delimitado donde se practican deportes, en Java
interesa disponer de un método int getTipoDeInstalacion(). Un
edificio es una construcción cubierta y en Java interesa
disponer de un método double getSuperficieEdificio(). Un
polideportivo es al mismo tiempo una instalación deportiva y
un edificio; en Java interesa conocer la superficie que tiene y
el nombre que tiene. Un edificio de oficinas es un edificio; en
Java interesa conocer el número de oficinas que tiene.
 Definir dos interfaces y una clase que implemente
ambas interfaces para representar la situación anterior.
En una clase test con el método main, crear un
ArrayList que contenga tres polideportivos y dos
edificios de oficinas y utilizando un iterator, recorrer la
colección y mostrar los atributos de cada elemento.
¿Entre qué clases existe una relación que se asemeja a
la herencia múltiple?

También podría gustarte