различные способы определения метода в интерфейсе - PullRequest
2 голосов
/ 14 июня 2009

Есть ли разница между:

interface A{
    public a();
}

и

interface A{
    abstract a();
}

и

interface A{
    a();
}

Ответы [ 3 ]

12 голосов
/ 14 июня 2009

Из раздела 9.4 Спецификация языка Java:

Каждое объявление метода в теле интерфейса неявно аннотация ...

Каждое объявление метода в теле интерфейса неявно публично.

10 голосов
/ 14 июня 2009

public и abstract излишни в интерфейсных методах, поэтому все три идентичны.

Лично я всегда использую третий.

0 голосов
/ 14 июня 2009

Лично я предпочитаю явно объявить мои методы интерфейса публичными. Хотя это излишне, в других контекстах метод без модификатора является закрытым для пакета, поэтому я нахожу, что это может сбивать с толку, особенно в интерфейсах с большим количеством статических полей final, подразумевать public в одних контекстах и ​​package-private в других, когда сразу может быть не очевидно, что вы смотрите на интерфейс, если вы переходите к методу из вашей IDE и не видите верхнюю часть объявления

Но я считаю, что аннотация является излишней, поскольку метод декалирования заканчивается точкой с запятой.

Но это все вопросы стиля и предпочтений. Функциональность точно такая же.

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