Depending on the connection
string you pass, the DriverManager looks up a Driver implementation. This implementation is provided by the database vendor or some third party. For instance, MySQL, Oracle and MS SQL Server each have their own drivers, whereas for Access and ODBC you can use drivers written by Sun.
These drivers will be accompanied by a number of classes that implement interfaces such as Connection, Statement, ResultSet etc.
The thing is, the java.sql model is designed in such a way that you don't need to know what the actual classes are. You'll use the interface declarations everywhere, which allows for fast changing to a new database system - change the connection string, load the correct driver, and you're ready to go.