2015-11-09 2 views
2

Это вопрос домашней работы о сравнении интерфейсов и классов в Java.Публичные/частные сигнатуры методов в интерфейсах Java

Я знаю, что интерфейсы не имеют реализации метода или переменных экземпляра, но классы делают.

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

This Ресурс, похоже, заставляет меня так думать.

+0

Кроме того, поскольку интерфейсы Java 8 могут иметь методы по умолчанию, которые являются реализациями. –

+0

Вы пробовали t? Поместите частный метод в интерфейс, и вы получите ошибку компиляции. – EJP

ответ

2

Интерфейсы не имеют частных членов.

«Язык программирования Java предоставляет механизмы контроля доступа, чтобы пользователи из пакета или класса не зависели от ненужных деталей реализации этого пакета или класса».

Контроль доступа - это все о маскировке деталей реализации. Интерфейсы не имеют реализации (исключая методы по умолчанию, которые были introduced в Java 8).

И наоборот, класс может иметь общедоступные, частные или защищенные члены, поскольку класс является кодом реализации.

Сообщалось, что это связано с изменением в Java 9, когда частные члены будут разрешены в интерфейсах.

Смежные вопросы