An abstract data type (ADT) is is defined by its methods (semantics) from the point of view of the user, specifically in terms of:
It implements the concept of abstraction.
An ADT may have then several implementation. (And therefore several concrete representations on the disk).
An ADT is implemented in a language through an interface. The two terms are then interchangeable.
All type that are not abstract are called concrete types.
The Abstract Data Type table may be implemented as:
Add the fact that data may be compressed and you may have aliases in one of this list.