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

Net framework і c# module 10

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