Abstractie

Abstractie (van het Latijnse abs, wat weg van betekent en trahere , wat teekenen betekent) is het proces van het wegnemen of verwijderen van kenmerken van iets om het te reduceren tot een set van essentiële kenmerken. In object-georiënteerd programmeren is abstractie een van de drie centrale principes (samen met inkapseling en overerving). Door het proces van abstractie verbergt een programmeur alle gegevens van een object, behalve de relevante, om de complexiteit te verminderen en de efficiëntie te verhogen. Op dezelfde manier als abstractie soms werkt in de kunst, is het object dat overblijft een representatie van het origineel, met weglating van ongewenste details. Het resulterende object zelf kan een abstractie worden genoemd, d.w.z. een benoemde entiteit die bestaat uit geselecteerde attributen en gedragingen die specifiek zijn voor een bepaald gebruik van de oorspronkelijke entiteit. Abstractie is verwant aan zowel inkapseling als data hiding.

In het proces van abstractie probeert de programmeur ervoor te zorgen dat de entiteit een naam krijgt op een manier die zinvol is en dat alle relevante aspecten erin worden opgenomen en geen van de irrelevante. Een real-world analogie van abstractie zou als volgt kunnen werken: Jij (het object) maakt een afspraak met een blind date en beslist wat je hem moet vertellen, zodat hij je in het restaurant herkent. Je besluit de informatie op te nemen over waar je je zult bevinden, je lengte, haarkleur, en de kleur van je jasje. Dit zijn allemaal gegevens die zullen helpen de procedure (je date die je vindt) vlot te laten verlopen. Je moet al die informatie vermelden. Aan de andere kant zijn er veel stukjes informatie over jou die niet relevant zijn voor deze situatie: je sofi-nummer, je bewondering voor obscure films, en wat je meenam naar "show and tell" in de vijfde klas zijn allemaal irrelevant voor deze specifieke situatie omdat ze je date niet zullen helpen je te vinden. Maar aangezien entiteiten een willekeurig aantal abstracties kunnen hebben, kan het zijn dat je ze in de toekomst in een andere procedure kunt gebruiken.