Ir al contenido

Interfaz (Java)

De Wikipedia, la enciclopedia libre

Esta es una versión antigua de esta página, editada a las 09:20 15 ene 2009 por Locovich (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

(difs.) ← Revisión anterior · Ver revisión actual (difs.) · Revisión siguiente → (difs.)

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.

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 declarara una interfaz se utiliza:

    modificador_acceso interface NombreInterfaz {
        ....
    }

modificador_acceso puede ser public o no existir, siendo entonces por defecto package. Los atributos que definamos en el cuerpo de la interfaz serán atributos de tipo constante en las clases en las que se implemente.

Para implementarla en una clase, se utiliza la forma:

    modificador_acceso NombreClase implements NombreInterfaz1 [, NombreInterfaz2]

Una clase puede implementar varias inetrfaces, separando los nombres por comas.

Ejemplo

  • Definición de una interfaz:
    interface Nave {
        public static final int VIDA = 100;

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

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

        ....
    }

Enlaces externos