W programowaniu komputerowym istnieje wiele typów zmiennych, funkcji i typów danych. Abstrakcyjny typ danych to zmienna, która może się zmieniać w zależności od warunków w programie. Jest to model programowania zorientowanego obiektowo, który umożliwia ponowne wykorzystanie kodu poprzez tworzenie warstwy abstrakcji. Ten typ danych jest często używany w językach programowania C++ i Java® i jest uważany za zaawansowaną technikę programistyczną.
Abstrakcyjny typ danych jest uważany za najniższy wspólny mianownik określonego zestawu lub struktury danych. Ten typ danych powinien zawierać podstawowe operacje umożliwiające modyfikację wartości danych w ramach tej struktury. Typ danych może być używany przez podobne typy danych poprzez dziedziczenie, co sprawia, że operacje są rozszerzalne na potomków.
Przykładem często używanym do opisywania abstrakcyjnych typów danych są obiekty listy i kolejki. Są to obiekty, które przechowują informacje w sposób liniowy, podobny do arkusza kalkulacyjnego danych. Zarówno lista, jak i obiekt kolejki zarządzają zestawami danych i używają funkcji do manipulowania tymi danymi. Tworząc abstrakcyjny typ danych do zarządzania zestawami danych, zarówno obiekt listy, jak i obiekt kolejki mogą korzystać z tych samych funkcji sortowania.
Abstrakcja odnosi się do pomysłów, które są wirtualne lub niekompletne. Abstrakcyjny typ danych to typ danych, który jest szkieletem rzeczywistej struktury danych. Został zaprojektowany jako szkielet umożliwiający ponowne wykorzystanie funkcji w oparciu o specyficzne potrzeby programu.
Nie można użyć abstrakcyjnego typu danych bez uprzedniego przypisania go do konkretnego typu danych. Jest to prekursor struktury szkieletu danych, który podczas tworzenia musi zostać przekonwertowany na rzeczywisty typ danych. Szkielet jest następnie używany przez dostęp do funkcji dostępnych w odziedziczonej konkretnej implementacji. Klasa abstrakcyjna definiuje interfejsy i funkcje, które mogą być używane przez klasy potomne.
Posiadanie abstrakcji w oprogramowaniu sprawia, że program jest bardziej elastyczny pod kątem przyszłych modyfikacji. Ta warstwa abstrakcji zapewnia obszar do tworzenia i używania funkcji ogólnych w całej aplikacji. Język programowania Java® realizuje to poprzez interfejsy i metody funkcjonalne w warstwie abstrakcyjnej.
Abstrakcyjny typ danych może być również używany w implementacji obiektowej bazy danych. Jest to hierarchiczny projekt bazy danych oparty na obiektach i relacjach nadrzędny-podrzędny. W ramach obiektu zasady bazy danych i abstrakcyjny typ danych mogą przybierać różne formy. Pozwala to na przechowywanie wielu typów danych w strukturze bazy danych.