In computer programming, there are many types of variables, functions, and data types. An abstract data type is a variable that can change based on conditions within the program. This is an object oriented programming model that enables the reuse of code by creating an abstraction layer. This data type is often used in C++ and Java® programming languages and is considered an advanced development technique.
An abstract data type is considered the lowest common denominator definition of a specific set or data structure. This data type should include basic operations to allow for modification of data values within that structure. The data type can be used by similar data types through inheritance, which makes the operations extensible to descendants.
An example that is often used to describe abstract data types are list and queue objects. These are objects that maintain information in a linear fashion, similar to a spreadsheet of data. Both a list and a queue object manage sets of data and use functions to manipulate that data. By creating an abstract data type to manage sets of data, both the list and queue object can use the same sorting functions.
Abstraction refers to ideas that are virtual or incomplete. An abstract data type is a type of data that is a skeleton form of an actual data structure. It is designed as a skeleton to enable the reuse of functions based on specific needs of the program.
An abstract data type cannot be used without first assigning it to a concrete data type. This is a precursor skeleton data structure that must be converted into a real data type when it is created. The skeleton is then used by accessing the functions available in the inherited concrete implementation. The abstract class defines interfaces and functions that can be used by descendant classes.
Having abstraction within software makes the program more flexible for future modifications. This abstraction layer provides an area for generic functions to be created and used throughout the application. The Java® programming language accomplishes this through interfaces and functional methods in the abstract layer.
The abstract data type can also be used in object database implementation. This is a hierarchal database design that is based on objects and parent-child relationships. Within object database principles and abstract data type can take on multiple forms. This allows multiple types of data to be stored in the database structure.