Answer:
D. abstract data type
Explanation:
Abstract data type is a data type whose implementation is embedded behind an abstraction. They can be worked via methods and functions but their specification is abstracted.
Lists and Stacks can be given as examples of abstract data types.
Abstract data type can be considered as the opposite of Concrete Data Type (CDT).