Otras lecciones del Curso de Java
¿Qué es IO en Java?
¿Cúales son los Operadores en Java?
¿Qué tipos de Variables hay en Java?
¿Cómo funciona Continue y Break en Java?
¿Cómo aplicar un Try Catch y Finally en Java?
¿Cómo utilizar el método super en Java?
¿Cómo trabajar con listas en Java?
¿Cuáles son los métodos de la clase String en Java?
¿Qué es un entorno de desarrollo en Java?
¿Qué es la Sobreescritura de métodos en Java?
¿Cómo utilizar un return en Java?
¿Cómo hacer un Hola Mundo en Java?
¿Cómo utilizar Throw y throws en Java?
¿Cómo hacer comentarios en Java?
¿Cuáles son las Palabras reservadas en Java?
Variables de entorno en Java
Características y estadísticas de Java e índice TIOBE
Estructura de proyecto, paquetes y clases en Java
Qué es una función en Java
¿Cómo funcionan las Funciones Java?
Operadores aritméticos en Java
Operadores de comparación en Java
Funciones anónimas en Java
Cómo invocar una función en Java
Atajos de teclado para IntelliJ
¿Qué es la Sobrecarga de funciones en Java?
Operadores lógicos en Java
Debug en Java
Como se crea una función en Java
¿Cómo crear Sentencias Switch en Java?
Bucles for en Java
¿Cómo hacer sentencias If e If else en Java?
¿Cómo funcionan los Bucles While en Java?
¿Qué son los objetos en Java?
¿Qué es el modificador static en Java y cómo se utiliza?
¿Qué es la herencia en Java?
¿Qué son los constructores en Java y cómo se utilizan?
¿Cómo crear clases en Java?
¿Qué es el Polimorfismo en Java?
¿Qué son las Clases Abstractas en Java?
¿Qué es la Programación genérica en Java?
Implementación de una interface en Java
¿Cómo se hace refactoring en Java?
¿Cómo trabajar con Maps en Java?
¿Como funcionan los arrays en Java?
¿Cómo generar excepciones en Java?
¿Qué es la clase Scanner en Java?
Introducción a Swing en Java
¿Quieres descubrir más cosas como ¿Qué son las interfaces? en Java?¡Apuntate a nuestro campus y empieza a aprender con nosotros y con toda la comunidad!

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: