Зміст курсу
Java ООП
Java ООП
Що Таке Інтерфейс?
Що робити, якщо нам потрібно успадкуватися від більше ніж одного класу? Java дозволяє це зробити за допомогою інтерфейсів. Незважаючи на назву, інтерфейс дуже схожий на абстрактний клас. Розглянемо оголошення інтерфейсу:
Простими словами, інтерфейс використовується для визначення методів, які клас буде реалізовувати. Інтерфейси мають окремий синтаксис для створення. Якщо для створення класу ми використовували "public class className { }
", то синтаксис для створення інтерфейсу виглядає інакше:
InterfaceExample.java
package com.example; public interface InterfaceExample { void methodName(); String methodThatAcceptsAndReturnsString(String parameter); }
Зверніть увагу на оголошення методу;
Не використовуються модифікатори доступу;
Не надаються тіла методів;
Немає необхідності позначати методи як abstract, оскільки ми працюємо в інтерфейсі;
Не створюються поля в інтерфейсах.
Розглянемо використання Interface
на прикладі медіаплеєра.
Маємо Interface
з назвою MediaPlayer
, який містить методи play
, pause
та stop
. Додатково існують два класи, які реалізують цей інтерфейс медіаплеєра — це AudioPlayer
та VideoPlayer
.
MediaPlayer.java
AudioPlayer.java
VideoPlayer.java
public interface MediaPlayer { void play(); void pause(); void stop(); }
Як ви бачите, ми створили interface
та два класи, які реалізують цей інтерфейс. Синтаксис такий самий, як і при перевизначенні абстрактних методів. Ми перевизначили кожен метод для кожного класу, щоб виконувати його власну специфічну функцію.
Однією з особливостей інтерфейсів є те, що ми можемо реалізувати більше ніж один інтерфейс. Розглянемо приклад:
Vehicle.java
VehicleInfo.java
Car.java
package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }
Ми створили інтерфейси Vehicle
та VehicleInfo
. Додатково, ми створили клас Car
, який реалізує обидва ці інтерфейси. Таким чином, ми можемо обирати, яку поведінку реалізовувати в класі, що добре доповнює принцип абстракції в об'єктно-орієнтованому програмуванні.
Працювати з інтерфейсами дуже зручно, і вони широко використовуються. У наступному розділі ми також розглянемо основні відмінності між інтерфейсом та абстрактним класом і дізнаємося, який з них краще використовувати на практиці!
1. Що таке інтерфейс у Java?
2. Чи може клас у Java реалізовувати кілька інтерфейсів?
3. Яке призначення інтерфейсу в Java?
4. Яке ключове слово використовується для реалізації інтерфейсу в класі?
5. Що відбувається, якщо клас заявляє про реалізацію інтерфейсу, але не надає реалізацій для всіх його методів?
Дякуємо за ваш відгук!