Abstract data type


In programming, a data set defined by the programmer in terms
 of the information it can contain and the operations that can be performed
 with it. An abstract data type is more generalized than a data type
constrained by the properties of the objects it contains—for example,
the data type “pet” is more generalized than the data types.

 The standard example used in illustrating an abstract data type is the
stack, a small portion of memory used to store information, generally on
 a temporary basis. As an abstract data type, the stack is simply a
structure onto which values can be pushed added and from which they
can be popped removed. The type of value, such as integer, is irrelevant
 to the definition.The way in which the program performs operations on
abstract data types is encapsulated, or hidden, from the rest of the program.
 Encapsulation enables the programmer to change the definition of the data
 type or its operations without introducing errors to the existing code
that uses the abstract data type. Abstract data types represent an intermediate
step between traditional programming and object-oriented programming.

The use of specialized software, such as an application programming interface
API, as a means of shielding software from device dependencies or the
complexities of underlying software. For instance, hardware abstraction
enables programs to focus on a task, such as communications, instead of on
individual differences between communications devices.


In object-oriented programming, the process of reducing an object to its
 essence so that only the necessary elements are represented.


Abstraction defines an object in terms of its properties attributes,
behaviors functionality, and interface means of communicating
with other objects.