Интерфейсы 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();
}
}
Вывод: