Интерфейсы и абстракция в C#
В этом уроке вы определите интерфейс, который описывает возможность объекта, и реализуете его в классе.
Введение
Интерфейс описывает, что умеет объект, например отправлять уведомления, не определяя, как он хранит данные или от чего наследует. Один и тот же интерфейс могут реализовать несколько не связанных между собой классов. По соглашению имя интерфейса в C# начинается с буквы I.
Интерфейс INotifier объявляет только метод Send. Класс EmailNotifier реализует этот интерфейс, выводя уведомление по почте. Переменная notifier имеет тип INotifier, поэтому использующий код не зависит от способа отправки. Чтобы добавить канал SMS или Slack, достаточно создать новый класс, реализующий INotifier.
Пример на C#, который можно запустить
using System;
interface INotifier { void Send(string message); }
class EmailNotifier : INotifier { public void Send(string message) => Console.WriteLine($"Email: {message}"); }
class Program
{
static void Main()
{
INotifier notifier = new EmailNotifier();
notifier.Send("Build complete");
}
}
Email: Build completeПрактика с отладчиком
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
Все задачи