Що таке клас інтерфейсу?
Інтерфейси використовуються разом із класами для визначення того, що називається контрактом. Контракт - це угода про те, що клас надасть заявці.
Інтерфейс оголошує властивості та методи. Клас повинен визначити, що саме буде робити метод.
Давайте розглянемо приклад інтерфейсу, змінивши класи в нашому додатку Console. Зверніть увагу, що ми не будемо запускати код, оскільки немає нічого, що можна запустити за допомогою інтерфейсу.
Створимо клас інтерфейсу. Клас називатиметься "Guru99Interface". Потім наш основний клас розширить визначений інтерфейс. Весь код потрібно записати у файл Program.cs.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{interface Guru99Interface{void SetTutorial(int pID, string pName);String GetTutorial();}class Guru99Tutorial : Guru99Interface{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID, string pName){TutorialID = pID;TutorialName = pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Guru99Tutorial pTutor = new Guru99Tutorial();pTutor.SetTutorial(1,".Net by Guru99");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}
Пояснення коду: -
Тут ми пояснимо важливі розділи коду
- Спочатку ми визначаємо інтерфейс, який називається "Guru99Interface". Зверніть увагу, що ключове слово "інтерфейс" використовується для визначення інтерфейсу.
- Далі ми визначаємо методи, які використовуватиме наш інтерфейс. У цьому випадку ми визначаємо ті самі методи, які використовувались у всіх попередніх прикладах. Зверніть увагу, що інтерфейс просто оголошує методи. Це не визначає код у них.
- Потім ми змушуємо наш клас Guru99Tutorial розширити інтерфейс. Тут ми пишемо код, який визначає різні методи, заявлені в інтерфейсі. Таке кодування забезпечує наступне
- Це гарантує, що клас, Guru99Tutorial, додає лише той код, який необхідний для методів "SetTutorial" та "GetTutorial" і нічого іншого.
- Це також гарантує, що інтерфейс поводиться як контракт. Клас повинен дотримуватися договору. Отже, якщо в контракті сказано, що він повинен мати два методи, які називаються "SetTutorial" і "GetTutorial", то саме так воно і повинно бути.
Резюме
- Інтерфейс визначає контракт, якому клас повинен відповідати. Інтерфейс визначає, які операції може виконувати клас.