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
Ad

More Related Content

What's hot (18)

Net framework і c# module 8
Net framework і c# module 8Net framework і c# module 8
Net framework і c# module 8
Andrii Hladkyi
 
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
Andrii Hladkyi
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17
Andrii Hladkyi
 
Net framework і c# module 16
Net framework і c# module 16Net framework і c# module 16
Net framework і c# module 16
Andrii Hladkyi
 
12 Architecture
12 Architecture12 Architecture
12 Architecture
eleksdev
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14
Andrii Hladkyi
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
eleksdev
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOP
eleksdev
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
Andrii Hladkyi
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2
eleksdev
 
Net framework і c# module 4
Net framework і c# module 4Net framework і c# module 4
Net framework і c# module 4
Andrii Hladkyi
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
eleksdev
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
eleksdev
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov
 
Net framework і c# module 12
Net framework і c# module 12Net framework і c# module 12
Net framework і c# module 12
Andrii Hladkyi
 
Version control
Version controlVersion control
Version control
eleksdev
 
General Functors
General FunctorsGeneral Functors
General Functors
Dzendzula
 
Net framework і c# module 8
Net framework і c# module 8Net framework і c# module 8
Net framework і c# module 8
Andrii Hladkyi
 
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
Andrii Hladkyi
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17
Andrii Hladkyi
 
Net framework і c# module 16
Net framework і c# module 16Net framework і c# module 16
Net framework і c# module 16
Andrii Hladkyi
 
12 Architecture
12 Architecture12 Architecture
12 Architecture
eleksdev
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14
Andrii Hladkyi
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
eleksdev
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOP
eleksdev
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
Andrii Hladkyi
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2
eleksdev
 
Net framework і c# module 4
Net framework і c# module 4Net framework і c# module 4
Net framework і c# module 4
Andrii Hladkyi
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
eleksdev
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
eleksdev
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov
 
Net framework і c# module 12
Net framework і c# module 12Net framework і c# module 12
Net framework і c# module 12
Andrii Hladkyi
 
Version control
Version controlVersion control
Version control
eleksdev
 
General Functors
General FunctorsGeneral Functors
General Functors
Dzendzula
 

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

опорні схеми
опорні схемиопорні схеми
опорні схеми
Irina Tabanets
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
Roman Shuper
 
"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...
Fwdays
 
Чистий код
Чистий кодЧистий код
Чистий код
Igor Bronovskyy
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
 
04
0404
04
Ірина Деренівська
 
Презентація_Рефакторинг_Тестування на java.pptx
Презентація_Рефакторинг_Тестування на java.pptxПрезентація_Рефакторинг_Тестування на java.pptx
Презентація_Рефакторинг_Тестування на java.pptx
marvelll1337
 
[Knowledge Sharing] - Microservices Step-by-Step
[Knowledge Sharing] - Microservices Step-by-Step[Knowledge Sharing] - Microservices Step-by-Step
[Knowledge Sharing] - Microservices Step-by-Step
Exoft LLC
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
Maksym Davydov
 
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic..."Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
Fwdays
 
методика вивчення теми ос
методика вивчення теми осметодика вивчення теми ос
методика вивчення теми ос
Tamara Emec
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
Andrii Hladkyi
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
Andrii Hladkyi
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
Andrii Hladkyi
 
скретч 3 клас
скретч 3 класскретч 3 клас
скретч 3 клас
Tamara Emec
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
Andrii Podanenko
 
m-9-10.pptx
m-9-10.pptxm-9-10.pptx
m-9-10.pptx
AlexanderSmidt
 
опорні схеми
опорні схемиопорні схеми
опорні схеми
Irina Tabanets
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
Roman Shuper
 
"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...
Fwdays
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
 
Презентація_Рефакторинг_Тестування на java.pptx
Презентація_Рефакторинг_Тестування на java.pptxПрезентація_Рефакторинг_Тестування на java.pptx
Презентація_Рефакторинг_Тестування на java.pptx
marvelll1337
 
[Knowledge Sharing] - Microservices Step-by-Step
[Knowledge Sharing] - Microservices Step-by-Step[Knowledge Sharing] - Microservices Step-by-Step
[Knowledge Sharing] - Microservices Step-by-Step
Exoft LLC
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
Maksym Davydov
 
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic..."Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
Fwdays
 
методика вивчення теми ос
методика вивчення теми осметодика вивчення теми ос
методика вивчення теми ос
Tamara Emec
 
скретч 3 клас
скретч 3 класскретч 3 клас
скретч 3 клас
Tamara Emec
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
Andrii Podanenko
 
Ad

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
Andrii Hladkyi
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
Andrii Hladkyi
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
Andrii Hladkyi
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
Andrii Hladkyi
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
Andrii Hladkyi
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
Andrii Hladkyi
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
Andrii Hladkyi
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
Andrii Hladkyi
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
Andrii Hladkyi
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
Andrii Hladkyi
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
Andrii Hladkyi
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
Andrii Hladkyi
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
Andrii Hladkyi
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
Andrii Hladkyi
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
Andrii Hladkyi
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
Andrii Hladkyi
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
Andrii Hladkyi
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
Andrii Hladkyi
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
Andrii Hladkyi
 
Ad

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
  翻译: