java接口使用问题,请各位高手指点迷津,小弟总是搞不清楚!

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:01:22
在java中我们知道接口可以让我们避免类不能多继承的尴尬,但是如果我们继承一个接口,那么我们就要实现其它所有的方法。而在实际当中,我们经常用到java系统中的接口,我们不是继承,只是使用,可是一般上讲,接口是没有方法体的,要我们自己去实现方法体。问题出来了,在java系统中的包java.sql这个包中有很多的接口,如
Array
Blob
CallableStatement
Clob
Connection
DatabaseMetaData
Driver
ParameterMetaData
PreparedStatement
Ref
ResultSet
ResultSetMetaData
Savepoint
SQLData
SQLInput
SQLOutput
Statement
Struct
其中有我们常用的Statement PreparedStatement ResultSet,可是这些接口我们没有实现它其中的各个方法,但我们调用它们的各个方法又不会出任何问题。是不是java系统己经实现了这些接口中的各个方法?但是我们又为什么看不到那些实现的类文件呢?如果java系统自己没有实现这些接口中的方法,那我们调用它时又为什么不会抛出异常呢?接口和它方法实现的文件之间的关系统是不是象C++中的类的头文件和类实现文件之间的关系是一样的?

呵呵,当然是已经实现了这些方法了,要不然你的程序怎么能运行出结果呢?你看到的class文件就是这些实现体的中间码,只不过是只提供给你调用的接口,屏蔽了实现细节。接口和它方法实现的文件之间的关系是不同于C++中的类的头文件和类实现文件之间的关系的,因为前者是接口和它的实现,有了接口不一定必须实现——除非你要使用,而后者完全是同一对象(所谓的“类”)的两个部分。不知道这样说你是否明白?

这些接口都已经实现了. 比如 ResultSet 是通过 PreparedStatement 的.execute 等方法,实现的.返回的就是resultSet的一个实例