Абстракция в программировании — это процесс выделения и определения ключевых характеристик объекта, игнорируя детали его реализации. В результате создается модель, которая позволяет работать с объектами на более высоком уровне абстракции. Абстракция представляет собой уровень описания объекта или концепции, который сконцентрирован на самых важных характеристиках и деталях, игнорируя все, что несущественно для текущей задачи. Например, когда мы создаём класс Car в программе, мы определяем его ключевые свойства и методы, такие как Speed, Accelerate(), Brake(), игнорируя детали внутреннего устройства двигателя или трансмиссии. Это позволяет нам работать с объектом Car на более абстрактном уровне, не погружаясь во все технические детали.
Использование абстракций в программировании упрощает восприятие сложных систем и повышает их уровень абстракции. Например, при работе с коллекциями в C# через интерфейсы IEnumerable и ICollection, мы абстрагируемся от конкретной реализации коллекции и можем использовать их в универсальных операциях, не беспокоясь о деталях реализации каждой коллекции. В результате, код становится более читаемым, гибким и легко поддерживаемым благодаря правильному использованию абстракций