Inom datorprogrammering finns det många typer av variabler, funktioner och datatyper. En abstrakt datatyp är en variabel som kan ändras baserat på förhållanden i programmet. Detta är en objektorienterad programmeringsmodell som möjliggör återanvändning av kod genom att skapa ett abstraktionslager. Denna datatyp används ofta i programmeringsspråken C++ och Java® och anses vara en avancerad utvecklingsteknik.
En abstrakt datatyp anses vara den minsta gemensamma nämnardefinitionen för en specifik uppsättning eller datastruktur. Denna datatyp bör inkludera grundläggande operationer för att tillåta modifiering av datavärden inom den strukturen. Datatypen kan användas av liknande datatyper genom nedärvning, vilket gör operationerna utbyggbara till ättlingar.
Ett exempel som ofta används för att beskriva abstrakta datatyper är list- och köobjekt. Dessa är objekt som upprätthåller information på ett linjärt sätt, liknande ett kalkylblad med data. Både en lista och ett köobjekt hanterar datauppsättningar och använder funktioner för att manipulera dessa data. Genom att skapa en abstrakt datatyp för att hantera datauppsättningar kan både list- och köobjektet använda samma sorteringsfunktioner.
Abstraktion hänvisar till idéer som är virtuella eller ofullständiga. En abstrakt datatyp är en typ av data som är en skelettform av en faktisk datastruktur. Den är utformad som ett skelett för att möjliggöra återanvändning av funktioner baserat på programmets specifika behov.
En abstrakt datatyp kan inte användas utan att först tilldela den till en konkret datatyp. Detta är en prekursor-skelettdatastruktur som måste omvandlas till en riktig datatyp när den skapas. Skelettet används sedan genom att komma åt de funktioner som finns tillgängliga i den ärvda betongimplementeringen. Den abstrakta klassen definierar gränssnitt och funktioner som kan användas av underliggande klasser.
Att ha abstraktion inom mjukvara gör programmet mer flexibelt för framtida modifieringar. Detta abstraktionslager tillhandahåller ett område för generiska funktioner som kan skapas och användas genom hela applikationen. Programmeringsspråket Java® åstadkommer detta genom gränssnitt och funktionella metoder i det abstrakta lagret.
Den abstrakta datatypen kan också användas i objektdatabasimplementering. Detta är en hierarkisk databasdesign som är baserad på objekt och relationer mellan föräldrar och barn. Inom objekt kan databasprinciper och abstrakta datatyper anta flera former. Detta gör att flera typer av data kan lagras i databasstrukturen.