Спецификатор доступа для объявления интерфейса - PullRequest
1 голос
/ 17 марта 2010

Почему спецификатор защищенного / частного доступа не может быть использован для объявления интерфейсов?

Ответы [ 4 ]

5 голосов
/ 17 марта 2010

Вы можете объявить защищенный класс или действительно закрытый, но только внутри другого. В этот момент он либо виден классам, производным от внешнего (в случае защищенного), либо нет (в случае частного):

public class Outer
{
    private static class NotVisibleToSubclassesOfOuter {}

    protected static class VisibleToSubclassesOfOuter {}
}
0 голосов
/ 18 марта 2010

В Java нет такого понятия, как спецификатор доступа. Термин «модификатор доступа».

(Таким образом, все те вопросы интервью, которые вы видите, спрашивая, в чем разница, - чепуха.)

0 голосов
/ 17 марта 2010

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

0 голосов
/ 17 марта 2010

Что означает частный класс? Что это не может быть использовано вне этого класса? Зачем тебе такой класс? (Как бы вы запустили / протестировали его?)

Что будет означать защищенный класс? То, что это может быть замечено только классами, которые расширяют это. Таким образом, когда вы набираете скелет класса (где-то вне мира), он не виден, но когда мы говорим, что класс динамически становится видимым?

Класс защищенного пакета имеет смысл - он виден классам внутри пакета и не предназначен для общего пользования.

...