Abstraction در برنامه نویسی تکنیکی است که با استفاده از آن پیچیدگی یک مفهوم کنترل می شود و بجای اینکه یک مفهوم بصورت مستقیم و در یک سطح پیاده سازی شود در چند سطح پیاده سازی می شود و در هر سطح با تکمیل کردن پیاده سازی سطح قبل به پیاده سازی غیر abstract یا نهایی نزدیکتر می شویم. شاید در این روش پیاده سازی طولانی تر شود ولی هم خوانا تر و ساده تر می شود و هم بسیار انعطافپذیرتر.
علاوه بر این در برنامه نویسی می توان از مفاهیم abstract برای استاندارد سازی بین API ها نیز استفاده کرد.
در برنامه نویسی شئ گرا Abstraction در سطح کلاس معنی پیدا می کند و ما می توانیم با ایجاد سلسله مراتبی از کلاس ها معمولی و abstract به ساده سازی مفاهیم پیچیده و انعطافپذیرتر کردن طراحی کمک کنیم.