La Interfaz

2035 vistas

¿Qué es una interfaz?
Las interfaces Java son expresiones puras de diseño. Se trata de auténticas conceptualizaciones no implementadas que sirven de guÃa para definir un determinado concepto (clase) y lo que debe hacer, pero sin desarrollar un mecanismo de solución.

Se trata de declarar métodos abstractos y constantes que posteriormente puedan ser implementados de diferentes maneras según las necesidades de un programa.

Por ejemplo una misma interfaz podrÃa ser implementada en una versión de prueba de manera poco óptima, y ser acelerada convenientemente en la versión definitiva tras conocer más a fondo el problema.

Declaración
Para declarar una interfaz se utiliza la sentencia interface, de la misma manera que se usa la sentencia class:



java
  1. interface MiInterfaz {
  2.   int CONSTANTE = 100;
  3.  
  4.   int metodoAbstracto( int parametro );
  5. }



Se observa en la declaración que las variables adoptan la declaración en mayúsculas, pues en realidad actuarán como constantes final. En ningún caso estas variables actuarán como variables de instancia.

Por su parte, los métodos tras su declaración presentan un punto y coma, en lugar de su cuerpo entre llaves. Son métodos abstractos, por tanto, métodos sin implementación.

Implementación de una interfaz
Como ya se ha visto, las interfaces carecen de funcionalidad por no estar implementados sus métodos, por lo que se necesita algún mecanismo para dar cuerpo a sus métodos.

La palabra reservada implements utilizada en la declaración de una clase indica que la clase implementa la interfaz, es decir, que asume las constantes de la interfaz, y codifica sus métodos:



java
  1. class ImplementaInterfaz implements MiInterfaz{
  2.   int multiplicando=CONSTANTE;
  3.  
  4.   int metodoAbstracto( int parametro ){
  5.     return ( parametro * multiplicando );
  6.   }
  7. }



En este ejemplo se observa que han de codificarse todos los métodos que determina la interfaz (metodoAbstracto()), y la validez de las constantes (CONSTANTE) que define la interfaz durante toda la declaración de la clase.

Una interfaz no puede implementar otra interfaz, aunque sà extenderla (extends) ampliándola.