Astrazione (dal latino abs, che significa lontano dalla e
Tirare
, che significa disegnare) è il processo di sottrarre o rimuovere caratteristiche da qualcosa per ridurlo a un insieme di caratteristiche essenziali. Nella programmazione orientata agli oggetti, l'astrazione è uno dei tre principi centrali (insieme all'incapsulamento e all'ereditarietà). Attraverso il processo di astrazione, un programmatore nasconde tutto tranne i dati rilevanti su un oggetto al fine di ridurre la complessità e aumentare l'efficienza. Allo stesso modo in cui l'astrazione a volte funziona nell'arte, l'oggetto che rimane è una rappresentazione dell'originale, con dettagli indesiderati omessi. L'oggetto stesso risultante può essere indicato come un'astrazione, il che significa un'entità denominata composta da attributi selezionati e comportamenti specifici per un particolare utilizzo dell'entità di origine. L'astrazione è correlata sia all'incapsulamento che all'occultamento dei dati.
Nel processo di astrazione, il programmatore cerca di assicurarsi che l'entità sia denominata in un modo che abbia senso e che includa tutti gli aspetti rilevanti e nessuno di quelli estranei. Un'analogia dell'astrazione nel mondo reale potrebbe funzionare in questo modo: tu (l'oggetto) ti stai organizzando per un appuntamento al buio e stai decidendo cosa dire loro in modo che possano riconoscerti al ristorante. Decidi di includere le informazioni su dove ti troverai, la tua altezza, il colore dei capelli e il colore della tua giacca. Questi sono tutti dati che aiuteranno la procedura (la tua data a trovarti) a funzionare senza problemi. Dovresti includere tutte queste informazioni. D'altra parte, ci sono molte informazioni su di te che non sono rilevanti per questa situazione: il tuo numero di previdenza sociale, la tua ammirazione per i film oscuri e ciò che hai preso per "mostrare e raccontare" in quinta elementare sono tutte irrilevante per questa particolare situazione perché non aiuteranno la tua data a trovarti. Tuttavia, poiché le entità possono avere un numero qualsiasi di astrazioni, potresti usarle in un'altra procedura in futuro.