Найти тему
.Net Review

Для чего нужны интерфейсы? Применение в C# (Часть 1)

Оглавление

Для реализации полноценного ООП (Объектно-ориентированное программирование) должна быть возможность выполнять одну задачу разными реализациями (Полиморфизм). Для этого в C# есть возможность наследования классами, абстрактными классами и интерфейсами. В этой статье будут рассмотрены базовые элементы работы с интерфейсами.

Зачем нужны интерфейсы?

Полиморфизм - это хорошо, но где её применять? Зачем? Для реализации одной логики, но разными способами. Например: у нас есть машина и самолет, оба они имеют возможность передвигаться, но что делать если двигаются они по-разному? Для помощи в этом существует интерфейс (если кратко). Далее о том, как это реализуется и как помогает в реализации.

Что такое интерфейс?

Интерфейс - ссылочный тип данных, который содержит в себе методы и свойства, но не реализует их. По умолчанию имеет доступ public, может быть internal. В C# нету множественного наследования (классов), выходом стали интерфейсы. Можно унаследоваться от множества интерфейсов.

Применение

Сразу нужно оговорить, что это пример работы интерфейса, и здесь написан код для демонстрации. Если реализовывать такую же задачу, то лучше использовать не только интерфейсы, но и абстрактные классы, но это тема для другой статьи.

-2

Тут реализован интерфейс ITransport, который содержит 2 метода: Move и Tank. Так как класс машин и самолетов имеют одну и туже задачу (передвигаться и заправляться), то нужно унаследоваться от интерфейса. Теперь в каждом классе своя реализация на каждую задачу.

-3
Ну и зачем интерфейс, мы же могли просто указать эти методы и без интерфейса?

Благодаря интерфейсы мы можем объединить классы и использовать их логику, опираясь на информацию в интерфейсе. Результат выполнения:

-4

Здесь был рассмотрен один из возможных вариантов использования. В следующих статьях про интерфейс будет описано о наследовании, модификаторах доступа интерфейсов и реальный пример.

Телеграмм канал: https://t.me/dotnetreview

Наука
7 млн интересуются