2. В цьому модулі:
Поняття інтерфейсу;
Синтаксис оголошення інтерфейсу;
Приклади створення інтерфейсів;
Інтерфейсні посилання;
Наслідування інтерфейсів;
Проблеми приховування імен при наслідуванні інтерфейсів;
Аналіз стандартних інтерфейсів;
2
Andrii Hladkyi
trilobt@gmail.com
3. Поняття інтерфейсу
Інтерфейс містить опис властивостей, методів чи подій реалізацію
яких повинен виконати клас-наслідник.
Не можна прописувати реалізацію властивостей, методів в самому
інтерфейсі.
Інтерфейс не може містити поля чи перевантаження операторів.
Всі методи інтерфейсу по замовчуванню public, їх не можна
оголосити як virtual чи static (змінити модифікатор доступу можна
при реалізації метода в класі-насліднику).
Інтерфейс може наслідувати будь яка кількість класів.
Кожний клас може наслідувати будь яку кількість інтерфейсів.
Клас який реалізує інтерфейс, повинен реалізувати всі його члени.
Andrii Hladkyi
trilobt@gmail.com 3
4. Синтаксис оголошення інтерфейсу
Оголошення інтерфейсу виконується за допомогою ключового слова
interface.
Andrii Hladkyi
trilobt@gmail.com 4
[модифікатор доступу] interface Ім’я_інтерфейсу
{
//члени інтерфейсу
}
public interface IResearcher
{
void Investigate();
void Invent();
}
6. Інтерфейсні посилання
В C# можна створювати інтерфейсну змінну посилання.
Може вказувати на будь який екземпляр будь якого класу що
реалізує даний інтерфейс
Через інтерфейсні посилання можна викликати тільки методи
даного інтерфейсу
Andrii Hladkyi
trilobt@gmail.com 6
8. Інтерфейсні індексатори
Дозволяє звертатися до об’єктів класів колекцій, що являються
членами класу, за допомогою квадратних дужок.
Andrii Hladkyi
trilobt@gmail.com 8
element_type this [int index]
{
get;
set;
}
12. Приховування імен при наслідувані
інтерфейсів
Коли клас реалізує декілька інтерфейсів, в яких присутні методи з
однаковим іменем
Andrii Hladkyi
trilobt@gmail.com 12
14. Аналіз стандартних інтерфейсів
Інтерфейс IEnumerable – підтримує перебір всіх елементів колекцій
IEnumerator – використовується в операторові foreach для проходу по
всім елементам колекції
IColection – наслідує IEnumerable містить додаткові властивості і
методи
IList – наслідує IColection, являється базовим інтерфейсом для всіх не
універсальних списків
IDisposable – Являється альтернативним деструктору. Методи
дозволяють звільнити не контрольовані ресурси
IComparable – Використовується для сортування елементів
Andrii Hladkyi
trilobt@gmail.com 14
15. Розробити абстрактний клас Vehicle (транспортний засіб). На його основі
реалізувати класи Plane (літак) Car (автомобіль) Ship (судно). Класи
повинні мати можливість задавати і отримувати координати і параметри
засобів пересування (вартість, швидкість, рік випуску і т.д.) за допомогою
властивостей і оголосити їх в інтерфейсі.
Для літака повинна бути визначена висота, для літака і судна – кількість
пасажирів, для судна – порт приписки. Динамічні характеристики задавати
за допомогою методів. Створити метод для роздруківки стану
транспортного засобу (кількість пасажир, порт, аеропорт і т.д.)
Andrii Hladkyi
trilobt@gmail.com 15