Page 78 - 4836
P. 78
Змінні інтерфейсного типу
Змінні інтерфейсного типу можуть посилатися на
об'єкт будь-якого класу, що реалізовує даний інтерфейс.
PriceItem pi ; // Змінна інтерфейсного типу
Dog2 dog = new Dog2 (); / / Створюється об'єкт класу
Dog2, на нього посилається змінна dog
dog.voice (); / / Можна викликати метод гавкання
System.out.println (dog.getTitle( )); // Можна вивести
назву товару
Dog oldDog = dog ; // Змінна oldDog посилається на той
самий об'єкт
oldDog.voice (); / / Можна працювати з об'єктом нового
класу по-старому
pi = dog ; // Змінна pi розглядає той самий об'єкт як
товар для прайса
pi.voice(); // НЕ ВИЙДЕ. Цього методу немає в
інтерфейсі PriceItem
Про використання інтерфейсів
Використовуючи інтерфейс, програміст отримує
можливість задати опис того, «що клас робить», не
піклуючись про деталі, «як він це робить». Кожен клас, який
реалізує інтерфейс, сам може вибирати способи реалізації.
Переваги інтерфейсів
Перевагою інтерфейсів над абстрактними класами є те,
що можна реалізувати кілька інтерфейсів в одному класі.
Розглядаючи абстрактні класи, було сказано, що вони зручні
при груповій роботі, коли частину методів робить один
програміст, а іншу частину - інший.
В інтерфейсах дана ідея ще більше розширюється. Так,
якщо один програміст розробляє клас (назвемо умовно
FirstClass), який використовує інший клас (UseableClass), що
повинен розробити інший програміст, то першому не потрібно
76