## ¿Qué es un Interface?

Definición: Un interface es una colección de definiciones de métodos (sin implementaciones) y de valores constantes.

Los interfaces se utilizan para definir un protocolo de comportamiento que puede ser implementado por cualquier clase del árbol de clases.

Los interfaces son útiles para:

- capturar similitudes entre clases no relacionadas sin forzar una relación entre ellas.
- declarar métodos que una o varias clases necesitan implementar.
- revelar el interface de programación de un objeto sin recelar sus clases (los objetos de este tipo son llamados objetos anónimos y pueden ser útiles cuando compartas un paquete de clases con otros desarrolladores).

En Java, un interface es un tipo de dato de referencia, y por lanto, puede utilizarse en muchos de los sitios donde se pueda utilizar cualquier tipo (como en un argumento de métodos y una declaración de variables). Podrás ver todo esto en: Utilizar un Interface como un Tipo.

### Los Interfaces No Proporcionan Herencia Múltiple

> Algunas veces se tratra a los interfaces como una alternativa a la herencia múltiple en las clases. A pesar de que los interfaces podrían resolver algunos problemas de la herencia múltiple, son animales bastantes diferentes. En particular:
> - No se pueden heredar variables desde un interface.
> - No se pueden heredar implementaciones de métodos desde un interface.
> - La herencia de un interface es independiente de la herencia de la clase--las clases que implementan el mismo interface pueden o no estar relacionadas a través del árbol de clases.

Ozito