Да, статические методы можно определять в интерфейсах с Java 8.
До Java 8 интерфейсы могли содержать только абстрактные методы. Но Java 8 добавила возможность включать статические методы прямо в интерфейсы, расширив их функциональность.
Статические методы в интерфейсах имеют следующие свойства:
interface MyInterface {
static void staticMethod() {
System.out.println("This is a static method");
}
}
// Вызывается как:
MyInterface.staticMethod();
Эта фишка особенно полезна для:
Статические методы интерфейса — удобный способ сгруппировать связанную функциональность, но помни, что они работают независимо от классов-реализаторов и не могут быть переопределены в подклассах.
Статические методы, определённые в интерфейсах, автоматически наследуются классами, которые реализуют интерфейс, позволяя реализующим классам вызывать их, используя имя класса.
Новый — ещё не проверен сообществом
Вы