You are on page 1of 3

1.1. ¿Qué es una interfaz?

En el curso básico de Java de Openwebinars hemos trabajado los conceptos de
herencia y polimorfismo en Java. Hasta ahora hemos considerado escenarios en que
una clase hereda solo de otra clase. ¿Sería posible plantear un escenario donde una
clase hereda de más de una clase (herencia múltiple)?

Java no permite la herencia múltiple, pero a cambio dispone de la construcción
denominada “Interface” que permite una forma de simulación o implementación limitada
de la herencia múltiple.

Se puede decir que una interfaz es una clase completamente abstracta, es decir, no
implementa absolutamente ningún método.

Las interfaces son una analogía con el mando de TV universal, que nos permite
controlar diferentes televisores, independientemente de la marca que sea el televisor.

Cada Televisor digamos que es una Clase Java diferente que implementa dicha
interface que es el mando a distancia universal.

1.2. Características de las interfaces


1.2. Características de las interfaces
Todos los métodos de una interfaz son implícitamente public abstract, no es
necesario especificarlo en la declaración del mismo.

Todas las variables y atributos de una interfaz son implícitamente constantes
(public static final), no es necesario especificarlo en la declaración de la misma.

Los métodos de una interfaz no pueden ser: static, final, strict ni native.

Una interfaz puede heredar (extends) de una o más interfaces.

Una interfaz no puede heredar de otro elemento que no sea una interfaz.

Una interfaz no puede implementar (implements) otra interfaz.

Una interfaz debe ser declarada con la palabra clave interface.

Los tipos de las interfaces pueden ser utilizados polimórficamente.

Una interfaz puede ser public o package (valor por defecto).

Los métodos toman como ámbito el que contiene la interfaz.

1.3. Implementar interfaces


Una interface es un fichero .java que se declara de la siguiente manera:
    interface nombre_interface { 
           tipo_retorno nombre_metodo ( lista_argumentos ) ; 
        . . . 
    } 

Ejemplo:
interface InstrumentoDeMusica {
    void tocar();  
 
    void afinar();
 
    String tipoInstrumento();
 
}

Como podemos ver:
1. En Java, las interfaces de declaran con la palabra reservada interface de manera
parecidad a como se declaran las abstractas.

2. En la declaración de las interfaces sólo aparecen declaraciones de métodos (su
nombre y parámetros, sin implementación ninguna)

3. Una interfaz no encapsula datos, sólo define cuáles son los métodos que han de
implementar los objetos de aquellas clases que implementen la interfaz.

Y una clase que implementa la interface InstrumentoDeMusica podría ser:
    class InstrumentoViento implements InstrumentoMusical { 
        void tocar() { . . . }; 
        void afinar() { . . .};
        String tipoInstrumento() {} 
    }

You might also like