Установка модификатора 'publi c' в реализации метода интерфейса - PullRequest
1 голос
/ 28 апреля 2020

Я знаю, что следующий код неверен, потому что модификатор public отсутствует в заголовке метода m1() в классе B. Но мне интересно, «Почему ?!». Почему код вызывает ошибку компиляции, если отсутствует public.

Заранее спасибо.

interface A{
  void m1();
}
class B implements A{
  void m1(){
    System.out.println("m1");
  }
}

1 Ответ

0 голосов
/ 28 апреля 2020

По умолчанию методы имеют доступ к package-private, если не указан модификатор доступа, что означает, что они публикуются c только для пакета и класса. Однако интерфейсы требуют, чтобы методы были реализованы классом, использующим интерфейс для публикации c.

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

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