Abstract data types(ADTs) are data types which have certain features and operations, without any explicit implementation. They can be coded however, without any language restriction. Generally, procedural languages use some variation of a structure to store an ADT, while object oriented languages use classes/objects.

The summary of an ADT, which lists its different operations, is known as an ADT signature