Найти тему
DEBAGanov

Java 737. Какие модификаторы по умолчанию имеют поля и методы интерфейсов?

Поля и методы интерфейсов в Java по умолчанию имеют модификаторы public и abstract, соответственно. Если в интерфейсе определяется метод, но не указывается модификатор доступа, то он автоматически считается public и abstract.

Интерфейс может содержать поля, но они автоматически являются статическими (static) и неизменными (final). Все методы и переменные неявно объявляются как public.

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

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

Например, интерфейс с одним методом может выглядеть так:

public interface MyInterface {
void myMethod();

default void myDefaultMethod() {
System.out.println("Default implementation of myDefaultMethod()");
}

private void myPrivateMethod() {
System.out.println("Private implementation of myPrivateMethod()");
}

private static void myPrivateStaticMethod() {
System.out.println("Private static implementation of myPrivateStaticMethod()");
}
}

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov