Хотя часто цитируемая причина заключается в том, что «интерфейсы определяют публичные API», я думаю, что это чрезмерное упрощение. (И это тоже "пахнет" круговой логикой.)
Не было бы бессмысленным иметь интерфейсы, которые имеют несколько модификаторов доступа; например, частично общедоступный и частично ограниченный другими классами в том же пакете, что и интерфейс. Фактически, в некоторых случаях это может быть полезно, ИМО.
На самом деле, я думаю, что часть аргументов в пользу неявного публичного доступа к членам интерфейса заключается в том, что это упрощает язык Java :
Программистам проще иметь дело с неявно открытыми членами интерфейса. Сколько раз вы видели код (классы), в котором модификаторы доступа к методам выбирались как бы случайным образом? Многим «обычным» программистам трудно понять, как лучше всего управлять границами абстракции Java 1 . Добавление public / protected / package-private к интерфейсам еще больше усложняет им задачу.
Неявно открытые члены интерфейса упрощают спецификацию языка ... и, следовательно, задачу для разработчиков компилятора Java и людей, которые реализуют API Reflection.
Мнение о том, что «интерфейсы определяют общедоступные API», возможно, является следствием (или характеристикой) решения по упрощению языкового дизайна ... а не наоборот. Но на самом деле эти два направления мысли, вероятно, развивались в умах разработчиков Java параллельно.
Во всяком случае, официальный ответ на RFE в JDK-8179193 проясняет, что команда разработчиков Java решила 2, что разрешение protectedна использование интерфейсов добавляет сложности, но при этом мало пользы. Престижность @skomisa за обнаружение улик .
Свидетельства в RFE решают проблему. Это официальная причина, по которой это не было добавлено.
1 - Конечно, опытные программисты не испытывают затруднений с этими вещами и могут приветствовать более богатую палитру функций контроля доступа. Но что происходит, когда их код передается для обслуживания кому-то другому?
2 - Вы можете не согласиться с их решением или заявленной аргументацией, но это спорный вопрос.