Начиная с Java 9, методы в интерфейсе могут быть закрытыми. Закрытый метод может быть статическим или методом экземпляра. Поскольку частные методы могут использоваться только в методах самого интерфейса, их использование ограничено тем, чтобы быть вспомогательными методами для других методов интерфейса.
Кей С. Хорстманн, Core Java Том I - Основы
Я понял, что мы можем поместить общую функциональность в приватные методы и не делать ее доступной для общественности. Но у нас может быть два вида приватных методов:
private
private static
Использование private static
методов понятно, но когда мы должны использовать private
методы? Мы не имеем дело с экземплярами здесь, поскольку это интерфейс, так почему создание private
методов разрешено? Разве нам не нужны только private static
методы?
private
метод экземпляра интерфейса в классе, который реализует интерфейс.private static
методами.Ответы:
ОК, еще одна попытка ответить на вопросы ОП. Когда вам нужно вызвать другой нестатический метод на интерфейсе из закрытого метода, закрытый метод не может быть статическим. Например, будет ошибка компиляции, если приведенный ниже закрытый метод был статическим:
источник
Интерфейсы используются для определения поведения объекта. Это означает, что все методы интерфейса доступны. При использовании методов по умолчанию мы можем предоставить стандартные реализации определенных методов, предлагая повторное использование кода через границы классов.
В некоторых случаях требуется функциональность (возможно, только для повторного использования кода в различных методах по умолчанию ), но ее не следует подвергать воздействию, поскольку она может загрязнить пространства имен класса / объекта. Здесь частные методы по умолчанию пригодятся. Примерами частных методов по умолчанию могут быть фабрики, проверки или обработка состояния по умолчанию.
источник