Concrete and Abstract Data Types

A concrete data type is a data type whose representation is known and relied upon by the programmers who use the data type.

If you know the representation of a data type and are allowed to rely upon that knowledge, then the data type is concrete.

If you do not know the representation of a data type and are not allowed to rely upon its representation, then the data type is abstract.