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

Статический метод интерфейса

Статический метод интерфейса объявляется с ключевым словом static внутри интерфейса. Такой метод принадлежит самому интерфейсу и не наследуется классами, которые его реализуют. Вызвать его можно только через имя интерфейса, например MyInterface.method. Статические методы в интерфейсе не могут быть переопределены в реализующих классах. В отличие от default-методов, они не требуют создания экземпляра класса. В первом параметре такой метод принимает те значения, которые нужны для его логики, а внутри тела метода можно использовать другие статические члены интерфейса.

Синтаксис

interface MyInterface { static returnType methodName(parameters) { // body } }

Пример

Давайте создадим интерфейс со статическим методом и вызовем его через имя интерфейса:

public class Main { interface MathUtils { static int square(int num) { return num * num; } } public static void main(String[] args) { int res = MathUtils.square(5); System.out.println(res); } }

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

25

Пример

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

public class Main { interface Greetable { static String greet(String name) { return "Hello, " + name; } } static class User implements Greetable { } public static void main(String[] args) { String res = Greetable.greet("abcde"); System.out.println(res); } }

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

"Hello, abcde"

Пример

Давайте используем статический метод интерфейса для создания объекта и передачи его в другой метод:

public class Main { interface Factory { static String create() { return "abcde"; } } static void print(String value) { System.out.println(value); } public static void main(String[] args) { print(Factory.create()); } }

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

"abcde"

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

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