Ir al contenido

Interfaz (Java)

De Wikipedia, la enciclopedia libre

Esta es una versión antigua de esta página, editada a las 09:10 24 feb 2015 por 91.117.64.138 (discusión). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

Una interfaz en Java es una colección de métodos abstractos y propiedades. En ellas se especifica qué se debe hacer pero no su implementación. Serán las clases que implementen estas interfaces las que describan la lógica del comportamiento de los métodos.


La principal diferencia entre interface y abstract es que un interface proporciona un mecanismo de encapsulación de los protocolos de los métodos sin forzar al usuario a utilizar la herencia.

Ventajas

El uso de interfaces proporciona las siguientes ventajas:

  • Organizar la programación.
  • Obligar a que ciertas clases utilicen los mismos métodos (nombres y parámetros).
  • Establecer relaciones entre clases que no estén relacionadas.

Uso

Java proporciona dos palabras reservadas para trabajar con interfaces: interface e implements.

Para declarar una interfaz se utiliza:

    modificador_acceso interface NombreInterfaz {
        ....
    }

modificador_acceso puede ser una clase de objetos que nos permite utilizar herencia en abstracción constante en las clases en las que se implemente.

Para implementarla en una clase, se utiliza la forma:

    modificador_acceso class NombreClase implements NombreInterfaz1 [, NombreInterfaz2]

Una clase puede implementar varias interfaces de los paquetes que se han importado dentro del programa, separando los nombres por comas.

Ejemplo

  • Definición de una interfaz:
    interface Nave {
        public void moverPosicion (int x, int y);
        public void disparar();
        .....
    }
  • Uso de la interfaz definida:
    public class NaveJugador implements Nave {
        public void moverPosicion (int x, int y) {
            //Implementación del método
            posActualx = posActualx - x;
            posActualy = posActualy - y;
        }

        public void disparar() {
            //Implementación del método
        }

        ...
    }

Enlaces externos