martes, 10 de noviembre de 2015

Interfaces



Java incorpora una construcción del lenguaje, mediante la declaración interface, que permite enunciar un conjunto de constantes y de cabeceras de métodos abstractos; éstos deben implementarse en las clases y constituyen la interfaz de la clase. En cierto modo, es una forma de declarar que todos los métodos de una clase son públicos y abstractos, con ello se especifica el comportamiento común de todas las clases que implementen la interfaz; su declaración es similar a la de una clase; en la cabecera se utiliza la palabra reservada interface en vez de class, por ejemplo:




La interfaz FIGURAS define dos métodos abstractos y además públicos; sin embargo, no debe especificarse ni abstract ni public ya que todos los métodos de interface lo son.

Sintaxis

acceso interface NombreInterface
{
  Constante_1;
  ...
  Constante_n;
 
Tipo nombreMetodo_1 (argumentos);
  ...
 Tipo nombreMetodo_n (argumentos);

}

acceso visibilidad de la interfaz definida, normalmente public.

Implementación de una interfaz

La interfaz especifica el comportamiento común que tiene un conjunto de clases, el cual se realiza en cada una de ellas y se conoce como implementación de interfaz; utiliza una sintaxis similar a la derivación o extensión de una clase, con la palabra reservada implements en lugar de extends.

class NombreClase implements NombreInterfaz
{
  // Definición de atributos
  // Implementación de métodos de la clase
  // Implementación de métodos del interfaz
}

La clase que implementa la interfaz tiene que especificar el código (la implementación) de cada uno de sus métodos; de no hacerlo, la clase se convierte en abstracta y debe declararse abstract; esto es una forma de obligar a que cada método de la interfaz se implemente.

Múltiples interfaces
Java no permite que una clase derive de dos o más clases, es decir, no permite la herencia múltiple; sin embargo, una clase sí puede implementar más de una interfaz y tener el comportamiento común de varias de ellas; para esto, sencillamente se escriben las interfaces separadas por comas a continuación de la palabra reservada implements; así, la clase tiene que implementar los métodos de todas.
sintaxis
class NombreClase implements Interfaz_1, Interfaz_2,..., Interfaz_n
{
  // ...

}

No hay comentarios:

Publicar un comentario