Abstraction provides a promise that any implementation of the ADT has certain properties and abilities; knowing these is all that is required to make use of an ADT object.
Code that uses an ADT object will not need to be edited if the implementation of the ADT is changed.