That's the fun part. It's entirely up to you to decide.
You may traverse your call stack and figure out where the call is coming from, then depending on the caller, return a different implementation.
You may have a Factory method that always goes for a particular implementation.
You may base the instance you return on the time of day, day of week, amount of memory available, ...
It's all up to you!