Що таке інтерфейс?
Що робити, якщо потрібно успадкуватися від більше ніж одного класу? Java дозволяє це зробити за допомогою інтерфейсів. Незважаючи на назву, інтерфейс дуже схожий на абстрактний клас. Розглянемо оголошення інтерфейсу:
Простими словами, інтерфейс використовується для визначення методів, які клас буде реалізовувати. Інтерфейси мають окремий синтаксис для створення. Якщо для створення класу ми використовували "public class className { }", то синтаксис створення інтерфейсу виглядає інакше:
InterfaceExample.java
123456package 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
12345public interface MediaPlayer { void play(); void pause(); void stop(); }
Як видно, було створено interface та два класи, які реалізують цей інтерфейс. Синтаксис такий самий, як і при перевизначенні абстрактних методів. Для кожного класу було перевизначено кожен метод для виконання власної специфічної функції.
Однією з особливостей інтерфейсів є можливість реалізовувати декілька інтерфейсів. Розглянемо приклад:
Vehicle.java
VehicleInfo.java
Car.java
123456package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }
Ми створили інтерфейси Vehicle та VehicleInfo. Додатково створено клас Car, який реалізує обидва ці інтерфейси. Таким чином, можна обирати, яку поведінку реалізовувати в класі, що добре відповідає принципу абстракції в об'єктно-орієнтованому програмуванні.
Працювати з інтерфейсами дуже зручно, і вони широко використовуються. У наступному розділі ми також розглянемо основні відмінності між інтерфейсом та абстрактним класом і дізнаємося, який з них краще використовувати на практиці!
1. Що таке інтерфейс у Java?
2. Чи може клас у Java реалізовувати кілька інтерфейсів?
3. Яке призначення інтерфейсу в Java?
4. Яке ключове слово використовується для реалізації інтерфейсу в класі?
5. Що відбувається, якщо клас заявляє про реалізацію інтерфейсу, але не надає реалізацій для всіх його методів?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4.76
Що таке інтерфейс?
Свайпніть щоб показати меню
Що робити, якщо потрібно успадкуватися від більше ніж одного класу? Java дозволяє це зробити за допомогою інтерфейсів. Незважаючи на назву, інтерфейс дуже схожий на абстрактний клас. Розглянемо оголошення інтерфейсу:
Простими словами, інтерфейс використовується для визначення методів, які клас буде реалізовувати. Інтерфейси мають окремий синтаксис для створення. Якщо для створення класу ми використовували "public class className { }", то синтаксис створення інтерфейсу виглядає інакше:
InterfaceExample.java
123456package 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
12345public interface MediaPlayer { void play(); void pause(); void stop(); }
Як видно, було створено interface та два класи, які реалізують цей інтерфейс. Синтаксис такий самий, як і при перевизначенні абстрактних методів. Для кожного класу було перевизначено кожен метод для виконання власної специфічної функції.
Однією з особливостей інтерфейсів є можливість реалізовувати декілька інтерфейсів. Розглянемо приклад:
Vehicle.java
VehicleInfo.java
Car.java
123456package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }
Ми створили інтерфейси Vehicle та VehicleInfo. Додатково створено клас Car, який реалізує обидва ці інтерфейси. Таким чином, можна обирати, яку поведінку реалізовувати в класі, що добре відповідає принципу абстракції в об'єктно-орієнтованому програмуванні.
Працювати з інтерфейсами дуже зручно, і вони широко використовуються. У наступному розділі ми також розглянемо основні відмінності між інтерфейсом та абстрактним класом і дізнаємося, який з них краще використовувати на практиці!
1. Що таке інтерфейс у Java?
2. Чи може клас у Java реалізовувати кілька інтерфейсів?
3. Яке призначення інтерфейсу в Java?
4. Яке ключове слово використовується для реалізації інтерфейсу в класі?
5. Що відбувається, якщо клас заявляє про реалізацію інтерфейсу, але не надає реалізацій для всіх його методів?
Дякуємо за ваш відгук!