To promote loose coupling, it is considered better design to rely on an abstract dependency than tying yourself to a concrete class.
One example of where this practice is especially useful is Spring's proxy-based remoting approach., where your single implementation resides in a different JVM.