Почему реализованный метод интерфейса должен быть объявлен как открытый? - PullRequest
3 голосов
/ 14 марта 2012

Я только начал изучать Java, когда наткнулся на интерфейс, я увидел следующий код:

interface Callback {
   void callback(int param);
}

class Client implements Callback {
   public void callback(int p) {
   }
}

Почему этот реализованный метод интерфейса объявлен как public?

Ответы [ 2 ]

10 голосов
/ 14 марта 2012

Модификатор по умолчанию для метода интерфейса: public abstract

Модификатор по умолчанию для метода класса является локальным для пакета.Это не одно и то же, и вы не можете переопределить публичный метод локальным методом.Вы можете переопределить абстрактный метод неабстрактным.

Вы должны сделать ваш метод класса общедоступным, даже если вам не нужно помещать его в интерфейс.

0 голосов
/ 14 марта 2012

Спецификатор открытого доступа указывает, что интерфейс может использоваться любым классом в любом пакете. Если вы не укажете, что ваш интерфейс общедоступен, то ваш интерфейс будет доступен только для классов, определенных в том же пакете, что и интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...