Interfaces de Java

Icono play
Java
¿Qué son las interfaces?

Una interfaz de Java es un mecanismo que tiene este lenguaje de programación para enunciar un conjunto de especificaciones y comportamiento que otras clases van a implementar. Es un concepto propio de la POO (programación orientada a objetos).

Dentro de cada una de las interfaces de Java puedes encontrar constantes estáticas y métodos abstractos. Esto quiere decir que si revisas el código de la interfaz solo verás los nombres de los métodos.

Estos nombres probablemente te den una pista de lo que los métodos harán, pero no verás el código o cómo lograrán hacer eso. Es como una especie de plantilla que servirá de modelo para las clases que implementen los métodos. 

Es importante que sepas que cada una de las clases que implementan a la interfaz deben incluir todos los métodos abstractos que han sido enunciados en ella.

¿Para qué se usan las interfaces de Java?

Si ya tienes conocimiento sobre el concepto de herencia en Java, posiblemente estarás pensando que esto es igual, y de hecho es muy similar. Sin embargo, en Java no existe la herencia múltiple. 

Esto quiere decir que una clase solo puede heredar de una superclase, no de varias. Por esta razón entra en escena el concepto de interfaces.

Entonces, una clase podrá heredar métodos de varias interfaces en Java y con este mecanismo, el lenguaje logra ofrecer una mayor abstracción a los programadores que lo utilizan.

¿Cómo se declaran las interfaces de Java?

Para declarar una interfaz en Java puedes guiarte por este esquema:

public interface nombredelainterface{
    public void nombredelmetodoabstracto();
    public void nombredeotrometodoabstracto();
}

Ahora bien, cuando llegue el momento de implementar los métodos de la interface, se verá como sigue:

class nombredelaclase implements nombredelainterface{
    public void nombredelmetodoabstracto(){
        código del metodo
    }
    public void nombredelotrometodoabstracto(){
        código del metodo
    }
}

Finalmente, cuando vamos a crear una instancia:

class Main {
    public static void main(String[] args){
        nombredelaclase miclase = new nombredelaclase();
        miclase.nombredelmetodoabstracto();
        miclase.nombredelotrometodoabstracto();
    }
}

Resumiendo entonces, la palabra reservada para crear interfaces es interface y la palabra reservada necesaria para implementar los métodos abstractos de esa interface es implements.
Cuando una clase implementa una o más interfaces, usarás la palabra reservada implements, y vas a separar por comas el nombre de las interfaces.
Si estás enunciando los métodos abstractos de la interface, no es necesario que utilices la palabra reservada public, ya que por defecto estos métodos son de acceso público.

Diferencias entre clases e interfaces

ClasesInterfaces
Una clase solo puede heredar de otra clase.Una clase puede heredar de varias interfaces.
En una clase puedes generar variables y objetos.Una interface solo puede contener constantes estáticas y métodos abstractos.
Dentro de una clase puedes implementar métodos.Las interfaces tienen métodos abstractos que son implementados por las demás clases.
En una clase puedes tener métodos con acceso público, privado o protegido.

Las interfaces solo permiten métodos 

con acceso público.

Una interface es una especie de mapa que dice lo que hay que hacer y los métodos abstractos, cuando son implementados en una clase, dicen cómo se hace.

¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: