A good example is the Java List interface.
That provides methods to dynamically add or remove elements to the list. That is the function. How that really happens is not expressed in that interface, and for users of that List interface, it also doesn't matter (too much).
For example, the implementation could be a doubly linked list, where you just change the "links" between the objects in your list, or if an array is used that needs to grow/shrink accordingly, that is up to the implementation) Of course, there are actual pros and cons for the different implementation options, but in many situations, you might decide to not care about them.