I came across several interfaces while learning JDBC - Connection, Statement, ResultSet etc...  

Does this imply that some classes somewhere, hidden from me, are implementing these interfaces, and providing their references when I need it? Is this because they need to be implemented differently depending on the Driver I'm using?