Абстра́кция в объектно-ориентированном программировании — это использование только определения характеристик объекта, без описания их конкретных/детальных реализаций. Основная идея состоит в том, чтобы представить объект обладающим набором методов и при этом не предоставлять конкретную логику этих методов. Простыми словами, абстракция отвечает на вопрос "Что?", без ответа на вопрос "Как?".
Это важный инструмент ООП наряду с полиморфизмом, наследованием и инкапсуляцией.
Абстракция является основой объектно-ориентированного программирования и позволяет работать с объектами, не вдаваясь в особенности их реализации.
Абстракция данных — одно из наиболее старых понятий объектно-ориентированного программирования, возникшее ещё до его появления. Абстракция данных связывает лежащий в основе тип данных с набором операций над ним (см. также абстрактный тип данных). Пользователь типа данных не имеет прямого доступа к его реализации, но может работать с данными через предоставленный набор операций. Преимущество абстракции данных в разделении операций над данными и внутреннего представления этих данных, что позволяет изменять реализацию, не затрагивая пользователей типа данных.Richard Wiener, Lewis J. Pinson. Fundamentals of OOP and Data Structures in Java. Cambridge University Press, 2000. ISBN 9780521662208
Такое разделение может быть выражено через специальный «интерфейс», сосредотачивающий описание всех возможных применений программы.
См. также Слой абстрагирования
Примечания
Категория:Объектно-ориентированное программирование Категория:Информатика Категория:Абстракция