在JDBC中常见这样的代码:
Class.forName("...");
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
可Connection,Statement,ResultSet都是接口啊,里面的方法是空的,可实现这些接口的类在什么时候实现的
分不够可以加
Class.forName("...");
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
可Connection,Statement,ResultSet都是接口啊,里面的方法是空的,可实现这些接口的类在什么时候实现的
分不够可以加
然后调用 getConnection 方法时,DriverManager 会试着从初始化时加载的那些驱动程序以及使用与当前 applet 或应用程序相同的类加载器显式加载的那些驱动程序中查找合适的驱动程序。
这些驱动就是接口的实现。
用接口作为数据类型
但这些数据驱动的开发者不一定需要把这些实现类的具体信息公开出来,仅此而已。比如下面这样:interface A {
void f();
}public class AFactory {
public A getAnInstance() {
return new B();
}
}// 一个实现了接口A的类,但是private的,外界看不到。
private class B implements A {
public void f() {
return;
}
}当然,这只是个例子,也可以使用内部类的方法实现,但总之主要的思想是:实现者只承诺返回了一个实现了某接口的对象,因此外界可以通过接口方法进行调用,但这个类是怎么来的,实现者不愿或感觉没必要公开。
这也符合面向对象设计中某些关于信息隐藏的原则。
腰缠70元到月入近10万
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=453IT工程师 毕业4年我年薪涨到30万
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=51126岁青年坐拥千万域名资产 从小玩家变成CEO
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=515程序员的酸甜苦辣:告别Coding
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=341从月薪3500到700万(一)
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=170网络草根月赚3000的十种方法
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=517如果我是女的 我肯定不会嫁给做网站的
http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=512
--------------------------------------------------------------------------------
JSP开发群:8137004由于群早满了,申请加入群的要求是基本天天在线,并且经常发言者(因为不定时清理),并注明csdn.