一个关于interface的疑惑 ResultSet只是sun提供给外部用的公共接口,真正实现是在JDBC的代码里面,通常我们用ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");看上去是返回的一个ResultSet.实际上取到的是一个ResultSet的实现类. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你所用的ResultSet rs其实是一个实现了的类,只是你不知道它具体是什么类.你也不必知道.con.createStatement(..)方法为你创建了一个符合要求的对象,所有对象都是已经实现了它应该实现的接口的.也就是说rs.getString("a");已经在你不知道的类里面实现了. ResultSet是接口, 里面只有定义.接口 = 实现此接口的类的实例.(一个函数能返回的当然是实例)也就是动态绑定.如:interface A{ public void Show();}class AA implements A{ public void Show(){ }}class BB implements A{ public void Show(){ }}class C{ public void Show(A a){ //不必关心到底运行时传入的是AA还是BB类型,只要实现A即可! a.Show(); } public static void main(String []args){ C c = new C(); A a = new AA(); c.Show(a); a = new BB(); c.Show(a); }} 呵呵。。用好interface是必要的技能^_^ 简单的说你用的是ResultSet,但是它实际上是一个实现了该接口的类的对象。这个类一般是由JDBC Driver的提供这实现的 java 后台监听键盘~~ java threads , concurrency event etc.............. 使用wait(),notifyAll()函数造成线程死锁 多线程的问题??? 100分求解?在线等!!! 线程死锁 请问用appletviewer看html时,appletviewer显示APPLET没有初始化,该如何解决?(.java文件已通过编译) 初学java,给点建议 .jar 的一点小疑问! 怎么学java比较好 急!简单问题!在这里等回复 高分求Weblogic,满足条件至少给200分,up有分
你也不必知道.con.createStatement(..)方法为你创建了一个符合要求的对象,
所有对象都是已经实现了它应该实现的接口的.
也就是说rs.getString("a");已经在你不知道的类里面实现了.
interface A{
public void Show();
}class AA implements A{
public void Show(){
}
}class BB implements A{
public void Show(){
}
}class C{
public void Show(A a){ //不必关心到底运行时传入的是AA还是BB类型,只要实现A即可!
a.Show();
}
public static void main(String []args){
C c = new C();
A a = new AA();
c.Show(a);
a = new BB();
c.Show(a);
}
}
用好interface是必要的技能^_^