junior
Что такое static метод интерфейса?
static-метод интерфейса — это метод с реализацией, принадлежащий самому интерфейсу, а не его экземплярам. В отличие от default-методов, статические методы интерфейса нельзя переопределить в классе-реализации и нельзя вызвать через объект — только через имя интерфейса.
Ключевые правила
- Статический метод интерфейса является частью интерфейса, классы-реализации его не наследуют
- Нельзя переопределить метод
Objectкакstaticв интерфейсе - Вызов возможен только через
ИмяИнтерфейса.имяМетода() - Используется для вспомогательных (утилитных) операций: валидация, создание экземпляров, сортировка
Статические методы интерфейса позволяют размещать утилитные методы рядом с интерфейсом, а не в отдельных классах вроде Collections или Arrays. Например, Comparator.comparing() и Predicate.not() — это static-методы интерфейсов.
На собеседовании: ключевое отличие от
default— статический метод не наследуется классом-реализацией. Если класс определит метод с той же сигнатурой, это будет отдельный, никак не связанный метод.