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