A partir de Java 9, los métodos en una interfaz pueden ser privados. Un método privado puede ser estático o un método de instancia. Dado que los métodos privados solo pueden usarse en los métodos de la interfaz en sí, su uso se limita a ser métodos auxiliares para los otros métodos de la interfaz.
Cay S. Horstmann, Core Java Volumen I - Fundamentos
Entiendo que podemos poner la funcionalidad común en los métodos privados y no hacerla accesible al público. Pero podemos tener dos tipos de métodos privados aquí:
private
private static
El uso de private static
métodos es comprensible, pero ¿cuándo debemos usarlos private
? No estamos tratando con instancias aquí ya que esta es una interfaz, entonces, ¿por qué private
está permitido crear métodos? ¿No necesitamos solo private static
métodos?
private
método de instancia de la interfaz en la clase que implementa la interfaz.private static
métodos.Respuestas:
OK, otro intento de responder las preguntas de OP. Cuando necesita llamar a otro método no estático en la interfaz desde un método privado, el método privado no puede ser estático. Por ejemplo, habría un error de compilación si el siguiente método privado fuera estático:
fuente
Las interfaces se utilizan para definir el comportamiento de un objeto. Esto significa todo los métodos de la interfaz están expuestos. Cuando usamos métodos predeterminados, podemos proporcionar implementaciones estándar de los métodos definidos, ofreciendo reutilización de código a través de los límites de la clase.
En algunos casos, se requiere funcionalidad (quizás solo para la reutilización de código en diferentes métodos predeterminados ) pero no se debe exponer porque contaminaría los espacios de nombres de clase / objeto. Aquí es donde los métodos privados por defecto son útiles. Ejemplos de métodos privados predeterminados pueden ser fábricas, validaciones o manejo de estado predeterminado.
fuente