Интерфейсы Java — это механизм, который позволяет нескольким классам совместно использовать несколько методов и констант. Это также хороший механизм для использования в полиморфизме. В java-интерфейсах метод объявляется как абстрактный по умолчанию, т.е. только сигнатура метода, тело.

Некоторые моменты при работе с интерфейсами Java:-

· Интерфейс — это основа класса.

· Интерфейс определяет, что класс должен делать, но не определяет, как он будет это делать.

· Интерфейсы используются для полной абстракции.

· Мы можем использовать один или несколько интерфейсов в классе.

Синтаксис java-интерфейса:

Интерфейс‹interface_name›

{

//объявляем методы, которые абстрагируются

//объявляем константные поля

//по умолчанию

}

сначала мы должны написать ключевое слово «интерфейс». Затем все методы в интерфейсе объявляются с пустым телом и являются общедоступными, а все поля по умолчанию являются общедоступными, статическими и окончательными.

Преимущества использования интерфейсов

· Интерфейсы могут использоваться для полной абстракции.

· Интерфейсы также помогают добиться слабой связанности.

· Интерфейсы также могут поддерживать множественное наследование.

Пример интерфейса в Java

Интерфейс Тест

{

публичная пустота m1();

публичная пустота m2();

}

класс Test2 реализует тест

{

публичная пустота m1()

{

System.out.println («m1»);

}

публичная пустота m2()

{

System.out.println («м2»);

}

public static void main (String arg [])

{

Тестовый объект = новый Test2();

объект.m1();

}

}

Выход:- м1

Новые функции добавлены интерфейсы в JDK 8

· Раньше не возможно было реализовать интерфейсы. Теперь мы можем добавить реализацию по умолчанию для методов интерфейса.

Например, если нам нужно добавить функцию, которая уже существует в интерфейсе. Таким образом, старый код не сможет выполняться, потому что классы не реализовали эти новые функции. Теперь в новой версии с помощью реализации по умолчанию мы предоставим тело по умолчанию для вновь добавленных функций. Так что старый код тоже может работать.

· И во-вторых, теперь мы можем определять статические методы в интерфейсах, которые также известны как независимые без объекта.

· А в JDK 9 добавлены новые возможности: статические методы, приватные методы и приватный статический метод.

Интерфейсы и наследование в Java

Класс может наследовать другой класс и может реализовывать один или несколько интерфейсов.

//Java-программа для реализации класса может реализовывать несколько интерфейсов

импортировать java.io.*;

интерфейс intI

{

недействительным a1();

}

интерфейс intF

{

недействительным a2();

}

Тестовый класс реализует intF, intI

{

публичная пустота a1()

{

System.out.println("Добро пожаловать в Java");

}

публичная пустота a2()

{

System.out.println("Это видно");

}

}

класс Асин

{

public static void main (String args [])

{

тест ob=новый тест();

ob.a1();

ov.a2();

}

}

Вывод: