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

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

Ответ

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

  1. Поля (переменные) – только константы (public static final по умолчанию)
  2. Неабстрактные методы (до Java 8) – теперь можно через default и static
  3. Конструкторы – интерфейсы не инстанцируются
  4. Приватные методы (до Java 9) – теперь можно
  5. Экземпляры классов – только типы

Пример константы:

interface MyInterface {
    String CONSTANT = "VALUE"; // автоматически public static final
}