Что такое интерфейсный класс?
Интерфейсы используются вместе с классами для определения так называемого контракта. Контракт — это соглашение о том, что класс предоставит приложению.
Интерфейс объявляет свойства и методы. Класс должен точно определить, что будет делать метод.
Давайте рассмотрим пример интерфейса, изменив классы в нашем консольном приложении. Обратите внимание, что мы не будем запускать код, потому что нет ничего, что можно запустить с помощью интерфейса.
Давайте создадим интерфейсный класс. Класс будет называться «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», то так и должно быть.
Резюме
- Интерфейс определяет контракт, которому будет соответствовать класс. Интерфейс определяет, какие операции может выполнять класс.