РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
49 of 1163 menu

Объявление interface

Ключевое слово interface объявляет интерфейс - ссылочный тип, содержащий абстрактные методы, константы и, начиная с Java 8, методы по умолчанию и статические методы. Класс, реализующий интерфейс, обязан переопределить все его абстрактные методы. В первом параметре объявления указывается имя интерфейса, во втором - список родителей через extends (если есть), а в теле перечисляются методы и константы.

Синтаксис

public interface Name extends Parent1, Parent2 { // constants // abstract methods // default methods // static methods }

Пример

Объявим простой интерфейс Shape с одним абстрактным методом и реализуем его в классе:

public class Main { public static void main(String[] args) { Shape shape = new Circle(5); System.out.println(shape.area()); } } interface Shape { double area(); } class Circle implements Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public double area() { return Math.PI * radius * radius; } }

Результат выполнения кода:

78.53981633974483

Пример

Интерфейс может содержать константы и метод по умолчанию:

public class Main { public static void main(String[] args) { Greeter greeter = new Greeter(); System.out.println(greeter.greet("World")); System.out.println(Greeter.PREFIX); } } interface Message { String PREFIX = "Hello, "; String greet(String name); default String greetTwice(String name) { return greet(name) + " " + greet(name); } } class Greeter implements Message { @Override public String greet(String name) { return PREFIX + name; } }

Результат выполнения кода:

"Hello, World" "Hello, "

Пример

Класс может реализовать несколько интерфейсов одновременно:

public class Main { public static void main(String[] args) { Walker walker = new Robot(); walker.walk(); ((Swimmer) walker).swim(); } } interface Walker { void walk(); } interface Swimmer { void swim(); } class Robot implements Walker, Swimmer { @Override public void walk() { System.out.println("walking"); } @Override public void swim() { System.out.println("swimming"); } }

Результат выполнения кода:

"walking" "swimming"

Смотрите также

  • ключевое слово implements,
    которое реализует интерфейс в классе
  • ключевое слово extends,
    которое расширяет класс или интерфейс
  • метод default,
    который задаёт реализацию по умолчанию
  • метод static,
    который объявляет статический метод интерфейса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить