Gymterview
junior

Что такое static метод интерфейса?

static-метод интерфейса — это метод с реализацией, принадлежащий самому интерфейсу, а не его экземплярам. В отличие от default-методов, статические методы интерфейса нельзя переопределить в классе-реализации и нельзя вызвать через объект — только через имя интерфейса.

Ключевые правила

  • Статический метод интерфейса является частью интерфейса, классы-реализации его не наследуют
  • Нельзя переопределить метод Object как static в интерфейсе
  • Вызов возможен только через ИмяИнтерфейса.имяМетода()
  • Используется для вспомогательных (утилитных) операций: валидация, создание экземпляров, сортировка

Статические методы интерфейса позволяют размещать утилитные методы рядом с интерфейсом, а не в отдельных классах вроде Collections или Arrays. Например, Comparator.comparing() и Predicate.not() — это static-методы интерфейсов.

На собеседовании: ключевое отличие от default — статический метод не наследуется классом-реализацией. Если класс определит метод с той же сигнатурой, это будет отдельный, никак не связанный метод.