Kompiuterių programavime yra daugybė kintamųjų, funkcijų ir duomenų tipų. Abstraktus duomenų tipas yra kintamasis, kuris gali keistis atsižvelgiant į programos sąlygas. Tai į objektą orientuotas programavimo modelis, leidžiantis pakartotinai naudoti kodą sukuriant abstrakcijos sluoksnį. Šis duomenų tipas dažnai naudojamas C++ ir Java® programavimo kalbose ir laikomas pažangia kūrimo technika.
Abstraktus duomenų tipas laikomas mažiausiu bendru konkretaus rinkinio ar duomenų struktūros vardiklio apibrėžimu. Šis duomenų tipas turėtų apimti pagrindines operacijas, kad būtų galima keisti duomenų reikšmes toje struktūroje. Duomenų tipas gali būti naudojamas panašiems duomenų tipams per paveldėjimą, todėl operacijas galima išplėsti palikuonims.
Pavyzdys, kuris dažnai naudojamas abstrakčiams duomenų tipams apibūdinti, yra sąrašo ir eilės objektai. Tai objektai, kurie informaciją palaiko linijiniu būdu, panašiai kaip duomenų skaičiuoklėje. Tiek sąrašas, tiek eilės objektas valdo duomenų rinkinius ir naudoja funkcijas, skirtas tais duomenimis manipuliuoti. Sukūrus abstrakčių duomenų tipą duomenų rinkiniams valdyti, tiek sąrašo, tiek eilės objektas gali naudoti tas pačias rūšiavimo funkcijas.
Abstrakcija reiškia idėjas, kurios yra virtualios arba neišsamios. Abstraktus duomenų tipas yra duomenų tipas, kuris yra tikrosios duomenų struktūros skeleto forma. Jis sukurtas kaip skeletas, leidžiantis pakartotinai naudoti funkcijas, pagrįstas konkrečiais programos poreikiais.
Abstraktus duomenų tipas negali būti naudojamas prieš tai nepriskiriant jo konkrečiam duomenų tipui. Tai pirmtakų skeleto duomenų struktūra, kuri turi būti konvertuojama į tikrą duomenų tipą, kai ji sukuriama. Tada skeletas naudojamas prieigai prie funkcijų, kurias turi paveldėtas konkretus įgyvendinimas. Abstrakčioji klasė apibrėžia sąsajas ir funkcijas, kurias gali naudoti palikuonių klasės.
Abstrakcija programinėje įrangoje daro programą lankstesnę būsimiems pakeitimams. Šis abstrakcijos sluoksnis suteikia sritį bendroms funkcijoms, kurias galima sukurti ir naudoti visoje programoje. Java® programavimo kalba tai atlieka per sąsajas ir funkcinius metodus abstrakčiame sluoksnyje.
Abstraktus duomenų tipas taip pat gali būti naudojamas objektų duomenų bazėje. Tai hierarchinis duomenų bazės dizainas, pagrįstas objektais ir tėvų ir vaikų ryšiais. Objektų duomenų bazės principai ir abstrakčių duomenų tipai gali būti įvairių formų. Tai leidžia duomenų bazės struktūroje saugoti kelių tipų duomenis.