How is loose coupling associated with interfaces when we are bound to create an implementation class regardless? The implementation class is forced to implement all those me
the client code is coupled to the interface. it is not coupled to the implementation. you can change t he implementation without compiling the client code or the interface.
see http://en.wikipedia.org/wiki/Dependency_inversion_principle and http://en.wikipedia.org/wiki/Open/closed_principle