一个关于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数组转置 java输入输出流 这个程序有问题,帮忙解决。。。。发现当中有错,不知如何修改。 请教顺序数组数据去重的最效率的方法 当定义好了Class名后,我要再更改的话,如何去更改??内详。。。 java applet问题,向高手求助。 用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是必要的技能^_^