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

More Related Content

What's hot

12 Architecture
12 Architecture12 Architecture
12 Architecture
eleksdev
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOP
eleksdev
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
eleksdev
 
General Functors
General FunctorsGeneral Functors
General Functors
Dzendzula
 

What's hot (18)

Net framework і c# module 8
Net framework і c# module 8Net framework і c# module 8
Net framework і c# module 8
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17
 
Net framework і c# module 16
Net framework і c# module 16Net framework і c# module 16
Net framework і c# module 16
 
12 Architecture
12 Architecture12 Architecture
12 Architecture
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOP
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2
 
Net framework і c# module 4
Net framework і c# module 4Net framework і c# module 4
Net framework і c# module 4
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
Net framework і c# module 12
Net framework і c# module 12Net framework і c# module 12
Net framework і c# module 12
 
Version control
Version controlVersion control
Version control
 
General Functors
General FunctorsGeneral Functors
General Functors
 

Similar to NET Framework and C# Module 5. Interfaces

Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
Roman Shuper
 

Similar to NET Framework and C# Module 5. Interfaces (20)

опорні схеми
опорні схемиопорні схеми
опорні схеми
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
 
"Elements of functional programming in C# based on Language-Ext library as an...
"Elements of functional programming in C# based on Language-Ext library as an..."Elements of functional programming in C# based on Language-Ext library as an...
"Elements of functional programming in C# based on Language-Ext library as an...
 
Чистий код
Чистий кодЧистий код
Чистий код
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
04
0404
04
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
Design patterns part 2
Design patterns part 2Design patterns part 2
Design patterns part 2
 
[Knowledge Sharing] - Microservices Step-by-Step
[Knowledge Sharing] - Microservices Step-by-Step[Knowledge Sharing] - Microservices Step-by-Step
[Knowledge Sharing] - Microservices Step-by-Step
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
 
методика вивчення теми ос
методика вивчення теми осметодика вивчення теми ос
методика вивчення теми ос
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
скретч 3 клас
скретч 3 класскретч 3 клас
скретч 3 клас
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
 
m-9-10.pptx
m-9-10.pptxm-9-10.pptx
m-9-10.pptx
 
#1 C# basics
#1 C# basics#1 C# basics
#1 C# basics
 
Android Storage
Android StorageAndroid Storage
Android Storage
 

More from Andrii Hladkyi (19)

Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 

NET Framework and C# Module 5. Interfaces

  • 1. .NET Framework & C# Модуль 5. Інтерфейси
  • 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; }
  • 10. Наслідування інтерфейсів Andrii Hladkyi trilobt@gmail.com 10  Інтерфейс може наслідувати інший інтерфейс  Клас який наслідує інтерфейс повинен реалізувати методи кожного з інтерфейсів
  • 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