Что мы можем декларировать в интерфейсе

«Что мы можем декларировать в интерфейсе» — вопрос из категории ООП, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В интерфейсе можно декларировать:

  1. Абстрактные методы (без реализации)
  2. Константы (public static final поля)
  3. Начиная с Java 8:
    • default методы (с реализацией)
    • static методы (с реализацией)
  4. Начиная с Java 9:
    • private методы (вспомогательные для default методов)

Пример:

interface MyInterface {
    int CONSTANT = 42; // public static final по умолчанию

    void abstractMethod(); // абстрактный метод

    default void defaultMethod() {
        privateMethod();
    }

    static void staticMethod() {
        System.out.println("Static method");
    }

    private void privateMethod() {
        System.out.println("Private helper");
    }
}