ResultSet只是sun提供给外部用的公共接口,真正实现是在JDBC的代码里面,通常我们用ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");看上去是返回的一个ResultSet.实际上取到的是一个ResultSet的实现类.

解决方案 »

  1.   

    你所用的ResultSet rs其实是一个实现了的类,只是你不知道它具体是什么类.
    你也不必知道.con.createStatement(..)方法为你创建了一个符合要求的对象,
    所有对象都是已经实现了它应该实现的接口的.
    也就是说rs.getString("a");已经在你不知道的类里面实现了.
      

  2.   

    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);
     }
    }
      

  3.   

    呵呵。。
    用好interface是必要的技能^_^
      

  4.   

    简单的说你用的是ResultSet,但是它实际上是一个实现了该接口的类的对象。这个类一般是由JDBC Driver的提供这实现的