java中接口的使用?

drugon 2004-09-10 04:40:56
在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++中的类的头文件和类实现文件之间的关系是一样的?
...全文
687 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
drugon 2004-09-13
  • 打赏
  • 举报
回复
谢谢大家的意见,我把那些驱动程序的jar文件解开看过,就象大家说的一样,其它由各个数据库厂商自己实现了各个接口方法。
redlaputa 2004-09-11
  • 打赏
  • 举报
回复
takecare说得对
weicairong 2004-09-11
  • 打赏
  • 举报
回复
好问题!
alaal 2004-09-11
  • 打赏
  • 举报
回复
weimenren(宁静以致远,淡泊以明志) 用List的例子十分恰当

ArrayList等都是继承了List接口并实现了List中的方法,我觉得这一点在《java2参考大全》中类库的每一章都可以得到体现
1981cxy 2004-09-11
  • 打赏
  • 举报
回复
学习.
看看.
alpha15 2004-09-11
  • 打赏
  • 举报
回复
某些接口中的方法在在某些类中是已经实现了的
newste 2004-09-11
  • 打赏
  • 举报
回复
我是小白来学习的
song3721 2004-09-11
  • 打赏
  • 举报
回复
up
wangdaobang 2004-09-11
  • 打赏
  • 举报
回复
接口只是定义了方法,假如我们以为调用的方法没有被实现的话,我认为是不对的,实现总是有一个或者几个类来实现这个接口,可以被一个类实现,也可以被几个类逐步实现,而且我们可以调用instance.getclass来得知是什么类将这个接口实现的(可能该类是从父类或者更古老的祖先类继承来的)。
weimenren 2004-09-11
  • 打赏
  • 举报
回复

这个不是那些接口实现了方法,接口只是定义方法名,方法参数以及方法返回值,我们使用Statement的时间,你会发现 你使用的 is a Statement,但这个Statement是通过其他的方法创建的,你总不能Statement stmt = new Statement()吧,通过其他方法构造Statement的时间,其实创建的是Statement的子类(子类 is a 父类),所以没有出错

就如 List list = new ArrayList(); 一样,你看见是 List接口,但它调用方法的时间其实调用的是 ArrayList()的方法

因为你很快就可以使用 list.add(Object o) 了, List 接口中定义 add方法,而在 ArrayList中实现
baffling 2004-09-10
  • 打赏
  • 举报
回复
是啊,各厂商提供的jdbc驱动里面应该已经实现了这些方法
treeroot 2004-09-10
  • 打赏
  • 举报
回复
驱动程序不就是实现吗??
你可以打印出来看看事那个类
System.out.println(conn.getClass());
System.out.println(rs.getClass());
.....
sulo_xxr 2004-09-10
  • 打赏
  • 举报
回复
方法其實在其子類中已經實現﹐你所用到的接口會去自動執其了類的方法
執行期型別的識別(向上轉型)
hongshi 2004-09-10
  • 打赏
  • 举报
回复
是啊,还没有 想过这个问题
takecare 2004-09-10
  • 打赏
  • 举报
回复
sun只是制订了JDBC的标准,而数据库厂商会去针对自己的数据库分别实现不同类型的jdbc driver。当使用这些接口前,一般都会Class.forName(driver)来装入Driver,接下来的事情就能预见到了,driver被实例化后或者驻入JVM后,就能够提供实现了。
chan2chen 2004-09-10
  • 打赏
  • 举报
回复
不知道他们是怎么设计这样的?
jiffandu 2004-09-10
  • 打赏
  • 举报
回复
上面说的好像是对的吧,讲不清楚
kobetong 2004-09-10
  • 打赏
  • 举报
回复
同样期待!
alaal 2004-09-10
  • 打赏
  • 举报
回复
调用这些方法的类实际上是继承了拥有该方法的接口,同时实现了这些方法

所以可以正常使用
drugon 2004-09-10
  • 打赏
  • 举报
回复
希望大家多多发表意见,星期一上班后就看情况结帖!
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧