Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Інтерфейси

План

1 Інтерфейси

2 Оголошення інтерфейсів

3 Реалізація інтерфейсу

4 Застосування інтерфейсів

 

Концепція абстрактних методів дозволяє запропонувати альтернативу множинному спадкуванню. В Java клас може мати тільки одного батька, оскільки при множинному спадкуванні можуть виникати конфлікти, які заплутують об'єктну модель. Наприклад, якщо в класу є два батьки, які мають однаковий метод з різною реалізацією, то який з них успадкує новий клас? І яка буде функціональність батьківського класу, що втратився свого методу?

Всі ці проблеми не виникають у тому випадку, якщо успадковуються тільки абстрактні методи від декількох батьків. Навіть якщо успадковано кілька однакових методів, однаково в них немає реалізації й можна один раз описати тіло методу, що буде використовуватися при виклику кожного із цих методів.

Саме так улаштовані інтерфейси в Java. Від них не можна породжувати об'єкти, але інші класи можуть реалізовувати їх.

2 Оголошення інтерфейсів

Оголошення інтерфейсів дуже схоже на спрощене оголошення класів.

Воно починається із заголовка. Спочатку вказуються модифікатори. Інтерфейс може бути оголошений як public і тоді він буде доступний для загального використання, або модифікатор доступу може не вказуватися, у цьому випадку інтерфейс доступний тільки для типів свого пакета. Модифікатор abstract для інтерфейсу не потрібно, оскільки всі інтерфейси є абстрактними.Далі записується ключове слово interface й ім'я інтерфейсу.

Після цього може бути вказане ключове слово extends і список інтерфейсів, від яких буде успадковуватися інтерфейс. Батьківських типів може бути багато, головне, щоб не було повторень і щоб відношення спадкування не утворювало циклічної залежності.

Потім у фігурних дужках записується тіло інтерфейсу.

 

public interface Drawable extends Colorable,

Resizable {

}

 

Тіло інтерфейсу складається з оголошення елементів, тобто полів-констант і абстрактних методів. Всі поля інтерфейсу повинні бути public final static, тому ці модифікатори вказувати необов'язково й навіть небажано, щоб не ускладнювати код.

 

public interface Directions {

int RIGHT=1;

int LEFT=2;

int UP=3;

int DOWN=4;

}

 

Всі методи інтерфейсу є public abstract і ці модифікатори також необов'язкові.

3 Реалізація інтерфейсу

Кожний клас може реалізовувати будь-які доступні інтерфейси. При цьому в класі повинні бути реалізовані всі абстрактні методи, що з'явилися при спадкуванні від інтерфейсів або батьківського класу, щоб новий клас міг бути оголошений неабстрактним.

Якщо з різних джерел успадковуються методи з однаковою сигнатурою, то досить один раз описати реалізацію й вона буде застосовуватися для всіх цих методів. Однак якщо в них різне повертати^ся значение, що, то виникає конфлікт:

Отже, якщо ім'я інтерфейсу зазначене після implements в оголошенні класу, то клас реалізує цей інтерфейс. Спадкоємці даного класу також реалізують інтерфейс, оскільки їм дістаються в спадщину його елементи.

 

4 Застосування інтерфейсів

Дотепер інтерфейси розглядалися з технічної точки зору - як їх повідомляти, які конфлікти можуть виникати. Однак важливо розуміти, як застосовуються інтерфейси з концептуальної точки зору.

Поширена думка, що інтерфейс - це повністю абстрактний клас, у цілому вірно, але воно не відбиває всіх переваг, які дають інтерфейси об'єктної моделі. Як ми вже відзначали, множинне спадкування породжує ряд конфліктів, але відмова від нього, хоч і робить мовупростіше, але не усуває ситуації, у яких потрібні подібні підходи.


 


Читайте також:

  1. WEB-документи та CGI-інтерфейси
  2. Внутрішні GSM - інтерфейси
  3. Інтерфейси
  4. Інтерфейси мікропроцесорних пристроїв і систем
  5. Поняття про протоколи, інтерфейси, стеки протоколів




Переглядів: 779

<== попередня сторінка | наступна сторінка ==>
Розмежування доступу в Java | Інтерфейс Runnable

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.006 сек.