¿Concepto de Interface?El concepto de Interface lleva un paso más adelante la idea de las
clases abstractas. En
Java una interface es una clase
abstracta pura, es decir una clase donde todos los métodos son abstractos (no se implementa ninguno). Permite al diseñador de clases
establecer la forma de una clase (nombres de métodos, listas de argumentos y tipos de retorno, pero no bloques de código). Una interface puede también contener datos miembro, pero estos son siempre
static y final. Una interface sirve para establecer un 'protocolo' entre clases.
¿Porque utilizar interfaces?Para
revelar la interfaz de un objeto de programación (funcionalidad del objeto) sin revelar su ejecución.
- Este es el
concepto de encapsulación- La puesta en práctica puede cambiar sin afectar el que llama a la interfaz.
Para que las clases no relacionadas
implementar similares métodos (comportamientos).
Declaración y usoUna interface se
declara: interface nombre_interface {
tipo_retorno nombre_metodo ( lista_argumentos ) ;
. . .
}
Por ejemplo:
interface InstrumentoMusical {
void tocar();
void afinar();
String tipoInstrumento();
}
Y una clase que
implementa la interface:
class InstrumentoViento extends Object implements InstrumentoMusical {
void tocar() { . . . };
void afinar() { . . .};
String tipoInstrumento() {}
}
class Guitarra extends InstrumentoViento {
String tipoInstrumento() {
return "Guitarra";
}
}
La clase InstrumentoViento implementa la interface, declarando los métodos y escribiendo el código correspondiente. Una clase derivada puede también redefinir si es necesario alguno de los métodos de la interface.
REFERENCIAS
http://www.arrakis.es/~abelp/ApuntesJava/Interfaces.htm
http://www.cpe.eng.cmu.ac.th/wp-content/uploads/javainterface.pdf