Найти тему
DEBAGanov

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

Ключевое слово interface используется для создания полностью абстрактных классов. Основное предназначение интерфейса - определять каким образом мы можем использовать класс, который его реализует. Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не реализует их поведение. Все методы неявно объявляются как public.

Начиная с Java 8 в интерфейсах разрешается размещать реализацию методов по умолчанию default и статических static методов.

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

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

Модификаторы по умолчанию, применяемые к полям и методам интерфейсов, являются следующими:

  • поля в интерфейсе являются public static final (публичными, статическими и неизменяемыми)
  • методы в интерфейсе являются public abstract (публичными и абстрактными)

Интерфейсы не имеют конструкторов и не могут быть инстанциированы, они могут быть только реализованы классом с помощью ключевого слова implements.

Пример создания интерфейса Drawable, который описывает метод draw() без реализации и константу COLOR:

public interface Drawable {
public static final String COLOR = "BLACK";
public abstract void draw();
}

Класс, который реализует этот интерфейс, должен реализовать метод draw() и может использовать константу COLOR:

public class Circle implements Drawable {
public void draw() {
System.out.println("Drawing a circle!");
}
}

Github: https://github.com/DEBAGanov