Для реализации полноценного ООП (Объектно-ориентированное программирование) должна быть возможность выполнять одну задачу разными реализациями (Полиморфизм). Для этого в C# есть возможность наследования классами, абстрактными классами и интерфейсами. В этой статье будут рассмотрены базовые элементы работы с интерфейсами. Зачем нужны интерфейсы? Полиморфизм - это хорошо, но где её применять? Зачем? Для реализации одной логики, но разными способами. Например: у нас есть машина и самолет, оба они имеют возможность передвигаться, но что делать если двигаются они по-разному? Для помощи в этом существует интерфейс (если кратко). Далее о том, как это реализуется и как помогает в реализации. Что такое интерфейс? Интерфейс - ссылочный тип данных, который содержит в себе методы и свойства, но не реализует их. По умолчанию имеет доступ public, может быть internal. В C# нету множественного наследования (классов), выходом стали интерфейсы. Можно унаследоваться от множества интерфейсов. Применение С