Page 79 - 4836
P. 79
чекати, коли другий програміст зробить необхідний йому
UseableClass. Вони можуть узгодити, що клас повинен мати
певні методи, описати інтерфейс для даного класу (наприклад,
interface Useable) і далі працювати кожен над своїм класом
паралельно. Один пише клас UseableClass реалізовуючи
(implements) логіку методів інтерфейсу Useable. Iнший пише
FirstClass так нібито клас UseableClass вже реалізовано.
Єдине, що їм потрібне – це узгоджений між ними інтерфейс, і,
зокрема, сигнатура майбутніх методів. Як і у випадку з
абстрактними класами в пригоді стає поліморфізм: змінна
інтерфейсного типу може певним чином замінити ще не
реалізований клас.
Звичайно, що вищесказане можна реалізувати і через
абстрактний клас, проте, абстрактні класи працюють в
ієрархії і ми не можемо реалізувати більше одного
абстрактного класу в своєму класі. Інтерфейси ж знімають
дане обмеження. Можна також створити абстрактні класи, які
частково реалізовуватимуть певний інтерфейс. Також можна
створити інтерфейси на основі інших, розширивши останні.
В Java існує ряд широковживаних інтерфейсів. Щоб
об’єкти можна було порівняти між собою, необхідно
реалізувати інтерфейс Comparable і його метод compareTo().
По суті призначенням інтерфейсів є змусити програміста, що
розробляє певний клас, реалізувати методи, щоб об’єкт
правильно функціонував.
Реалізовуємо електронний словник.
77