do not need to know the implementation details in order to use something; related to abstract data types (adts)
allowing us to use a data structure without paying attention to how it's implemented
a logical description of how we view the data and the operations that are allowed without regard to how they will be implemented.