SlideShare a Scribd company logo
.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

More Related Content

PPTX
12 Architecture
PPTX
NET Framework and C# Module 5. Interfaces
PPTX
Net framework and C# module 17. Serialization
PPTX
08 Exceptions and AOP
PPTX
System programing module 1. Processes
PPTX
Advanced c sharp part 3
PPTX
.NET Platform. C# Basics
PPTX
NET Framework and C# Module 6.2. Generics
12 Architecture
NET Framework and C# Module 5. Interfaces
Net framework and C# module 17. Serialization
08 Exceptions and AOP
System programing module 1. Processes
Advanced c sharp part 3
.NET Platform. C# Basics
NET Framework and C# Module 6.2. Generics

What's hot (6)

PPTX
Net Framework and c# module 2. OOP
PDF
лаб. роб. №2 обєкти та сервіси що ними надаються
PDF
iPhone Objective-C Development (ukr) (2009)
PPTX
Net framework і c# module 8
PDF
Xdebug (ukr)
PPTX
Net framework і c# module 17
Net Framework and c# module 2. OOP
лаб. роб. №2 обєкти та сервіси що ними надаються
iPhone Objective-C Development (ukr) (2009)
Net framework і c# module 8
Xdebug (ukr)
Net framework і c# module 17
Ad

Viewers also liked (13)

PPTX
Net framework і c# module 12
PPTX
Ado.net module 6 entity framework
PPTX
Module 2.2
PPTX
Wpf module 1
PPTX
Animación de textos u objetos
PPTX
Net framework і c# module 4
PPTX
Wcf module 2
PPTX
Wcf module 3.5
PPTX
Net framework і c# module 16
PPTX
Win api module_3.3
PPTX
Win api module_2.1
PPTX
Win api module_1.2
PPTX
System programing module 3
Net framework і c# module 12
Ado.net module 6 entity framework
Module 2.2
Wpf module 1
Animación de textos u objetos
Net framework і c# module 4
Wcf module 2
Wcf module 3.5
Net framework і c# module 16
Win api module_3.3
Win api module_2.1
Win api module_1.2
System programing module 3
Ad

Similar to Net framework і c# module 10 (20)

PPTX
Net framework і c# module 9
PDF
[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)
PPTX
Net Framework and C# Module 3 4. Inheritance, Abstractions
PPT
V24 com to_net
PPTX
PPTX
ASP.NET Core лекція 02.pptx
PPTX
Lviv MDDay 2014. Дмитро Андреєв “знайомство з .Net micro framework”
PPTX
Net framework і c# lesson1
PPTX
C#- Лекція 1
PPTX
Net framework і c# lesson1
PPT
Lection 2
PDF
Lecture 06. iOS Programming. Основи Objective-C
PPTX
Web service lecture
PPTX
Design patterns part 2
PPTX
System programing module 1
PDF
11 - rozrobka prohramnoho zabezpechennia dlia vbudovanykh system - dmytro and...
PPTX
Computers and Computing Works lecture №8
PPTX
Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...
PPTX
System programing module 2
PPTX
System programing module 2. Threads
Net framework і c# module 9
[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)
Net Framework and C# Module 3 4. Inheritance, Abstractions
V24 com to_net
ASP.NET Core лекція 02.pptx
Lviv MDDay 2014. Дмитро Андреєв “знайомство з .Net micro framework”
Net framework і c# lesson1
C#- Лекція 1
Net framework і c# lesson1
Lection 2
Lecture 06. iOS Programming. Основи Objective-C
Web service lecture
Design patterns part 2
System programing module 1
11 - rozrobka prohramnoho zabezpechennia dlia vbudovanykh system - dmytro and...
Computers and Computing Works lecture №8
Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...
System programing module 2
System programing module 2. Threads

More from Andrii Hladkyi (20)

PPTX
NET Framework and C# Module 12.2. Garbage Collector
PPTX
NET Framework and C# Module 6. Delegates, Events
PPTX
Net Framework and c# Lesson 1
PPTX
Wpf module 2
PPTX
Wpf module 1
PPTX
Msp module 3
PPTX
Msp module 2
PPTX
Msp module 1
PPTX
Ado.net module 2
PPTX
Ado.net module 1
PPTX
Design pattern module 1
PPTX
Win api module_2.0_gdi+
PPTX
Win api module_1.1_ok
PPTX
Win api module_6.2
PPTX
Design pattern module 1
PPTX
Uml module 6
PPTX
Uml module 5
PPTX
Uml module 4
PPTX
Uml module 3
PPTX
Uml module 2
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 6. Delegates, Events
Net Framework and c# Lesson 1
Wpf module 2
Wpf module 1
Msp module 3
Msp module 2
Msp module 1
Ado.net module 2
Ado.net module 1
Design pattern module 1
Win api module_2.0_gdi+
Win api module_1.1_ok
Win api module_6.2
Design pattern module 1
Uml module 6
Uml module 5
Uml module 4
Uml module 3
Uml module 2

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(); }
  • 6. Інтерфейсні посилання  В C# можна створювати інтерфейсну змінну посилання.  Може вказувати на будь який екземпляр будь якого класу що реалізує даний інтерфейс  Через інтерфейсні посилання можна викликати тільки методи даного інтерфейсу Andriy Gladkyy KspDevelop@gmail.com 6
  • 8. Інтерфейсні індексатори  Дозволяє звертатися до об’єктів класів колекцій, що являються членами класу, за допомогою квадратних дужок. Andriy Gladkyy KspDevelop@gmail.com 8 element_type this [int index] { get; set; }
  • 10. Наслідування інтерфейсів Andriy Gladkyy KspDevelop@gmail.com 10  Інтерфейс може наслідувати інший інтерфейс  Клас який наслідує інтерфейс повинен реалізувати методи кожного з інтерфейсів
  • 12. Приховування імен при наслідувані інтерфейсів  Коли клас реалізує декілька інтерфейсів, в яких присутні методи з однаковим іменем Andriy Gladkyy KspDevelop@gmail.com 12
  • 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