Page 87 - 6253
P. 87
яких визначено метод з одним і тим же іменем і списком параметрів, то цей
реалізований метод можна використовувати з посиланнями обох інтерфейсів.
Усі методи, оголошені в інтерфейсі необхідно у класі, що його реалізує
оголосити з модифікатором доступу public. Список параметрів методу у класі має
збігатися із списком параметрів, заданих під час визначення інтерфейсу. Якщо клас
імплементує інтерфейс, проте не всі методи цього інтерфейсу у ньому реалізовано,
то такий клас необхідно оголосити як абстрактний.
До кожного інтерфейсу можна додати оголошення нових методів або
об’єднати декілька інтерфейсів в один, використовуючи наслідування. Як і в класах,
один інтерфейс може наслідувати інший інтерфейс використовуючи для цього
ключове слово extends.
interfase В extends А [,С] {
//тіло інтерфейсу
}
Один інтерфейс може наслідувати декілька інших інтерфейсів. При цьому, у
класі, який імплементує інтерфейс, необхідно реалізовувати усі методи, оголошені у
повному ланцюгу інтерфейсів, які наслідують один одного.
Область застосування інтерфейсів
Так само, як оголошуються змінні-посилання на клас, аналогічним чином
можна оголосити змінні-посилання на інтерфейс. Така змінна буде зберігати
вказівник на екземпляр класу, який реалізує відповідний інтерфейс. Під час виклику
методу, буде виконуватися та його версія, що асоціюється із об’єктом на який
посилається змінна. Це одна з ключових властивостей інтерфейсу. Версія методу
вибирається динамічно під час виконання програми, що дає змогу компілювати
класи навіть після виконання програми, яка викликає їхні методи.
Як приклад спільного використання класів, абстрактних класів,
інтерфейсів та процедури наслідування між ними розглянемо наступну
програму.
// Використання інтерфейсів та абстрактних класів
interface A {
void call1();
86