This week's book giveaway is in the Java in General forum. We're giving away four copies of Think Java: How to Think Like a Computer Scientist and have Allen B. Downey & Chris Mayfield on-line! See this thread for details.
It allows vendors of database systems to provide their own implementations which are specificly for those systems, yet users can write their code once without having to change much - only the driver class and the connection string.
Sure, some of it could have possibly been put in abstract classes, but it would have been so very little it hardly justifies having an abstract class.