No Java 9, os métodos em uma interface podem ser privados. Um método privado pode ser estático ou um método de instância. Como os métodos privados só podem ser usados nos métodos da própria interface, seu uso é limitado a ser métodos auxiliares para os outros métodos da interface.
Cay S. Horstmann, Core Java Volume I - Fundamentos
Entendo que podemos colocar a funcionalidade comum nos métodos privados e não torná-la acessível ao público. Mas podemos ter dois tipos de métodos privados aqui:
private
private static
Usar private static
métodos é compreensível, mas quando devemos usar private
métodos? Não estamos lidando com instâncias aqui, pois essa é uma interface. Por que a criação de private
métodos é permitida? Não precisamos apenas de private static
métodos?
private
método de instância da interface na classe que implementa a interface.private static
métodos.Respostas:
OK, outra tentativa de realmente responder às perguntas do OP. Quando você precisa chamar outro método não estático na interface a partir de um método privado, o método privado não pode ser estático. Por exemplo, haveria um erro de compilação se o método privado abaixo fosse estático:
fonte
As interfaces são usadas para definir o comportamento de um objeto. Isso significa que todos os métodos da interface estão expostos. Ao usar métodos padrão, podemos fornecer implementações padrão dos métodos definidos, oferecendo reutilização de código além dos limites da classe.
Em alguns casos, a funcionalidade é necessária (talvez apenas para reutilização de código em diferentes métodos padrão ), mas não deve ser exposta, pois poluiria os namespaces da classe / objeto. É aqui que os métodos padrão privados são úteis. Exemplos de métodos padrão privados podem ser fábricas, validações ou manipulação de estado padrão.
fonte