关于接口中方法的疑问

u010202506 2013-04-12 11:20:26
新手最近在看JDBC这块,发现在操作操作数据库时,可以用Connection接口中的createStatement()方法实例化一个Statement对象,再用这个对象调用execute()方法执行sql命令。这里就产生了一个疑问,接口中的方法都是抽象的,即没有方法体,那么createStatement()和execute()这两个方法到底是怎么执行的?怎么就能产生出结果?另,接口对象的实例化必须由实现接口的具体类中的构造方法实现,这里怎么能用一个接口中的方法实例化另一个接口的对象?请高手赐教。
...全文
195 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LCore 2013-04-12
  • 打赏
  • 举报
回复
也就是说针对数据库的操作,各个厂商是给我们封装好了的 我们只是使用jdk提供的接口进行一个回调而已
LCore 2013-04-12
  • 打赏
  • 举报
回复
引用 楼主 u010202506 的回复:
新手最近在看JDBC这块,发现在操作操作数据库时,可以用Connection接口中的createStatement()方法实例化一个Statement对象,再用这个对象调用execute()方法执行sql命令。这里就产生了一个疑问,接口中的方法都是抽象的,即没有方法体,那么createStatement()和execute()这两个方法到底是怎么执行的?怎么就能产生出结果……
楼主可以仔细想想,JDBC编程的时候不是要用的驱动jar包吗? 楼主可以把那个jar解压了看看 知道了吧,每个数据库的厂商都按照jdk操作数据库的接口提供了 自己的实现,也就是实际的驱动jar Class.forName...... 只是通过jdk的接口进行回调而已
A18767101172 2013-04-12
  • 打赏
  • 举报
回复
接口还是有作用的,比方说可以引用里面的成员变量,继承(implements)接口的类对接口的方法进行重写.在这里Collection是一个接口,但是还得看看Statement等等是不是接口,如果不是,当让有实现的方法了
A18767101172 2013-04-12
  • 打赏
  • 举报
回复
照你这么说接口都没什么作用了,因为方法里面根本就没有实现,那我们还要接口干什么
u010202506 2013-04-12
  • 打赏
  • 举报
回复
这个我知道,我的意思是方法体是什么,在哪里编写的,抽象方法是没有方法体的
nai598455803 2013-04-12
  • 打赏
  • 举报
回复
executeQuery 是接口Statement 中的一个方法, Statement 是接口Connection 中创建的一个对象 当数据库连接成功的时候,调用Statement 的executeQuery 方法执行查询
xianwangkai 2013-04-12
  • 打赏
  • 举报
回复
引用 7 楼 u010202506 的回复:
原来如此,就是说其实接口中的方法在驱动jar包里都实现了,所以可以直接使用了。这与接口中的方法要通过子类实现没有冲突。谢谢了。
对的,这都是规范性的东西,不需要动态度的脑筋的问题!
lvzg_005 2013-04-12
  • 打赏
  • 举报
回复
jdk中的jdbc接口是规范,各大供应商只要显示这些规范就能很好的让使用者来使用 接口的实现都是由这些供应商来提供实现的。
u010202506 2013-04-12
  • 打赏
  • 举报
回复
原来如此,就是说其实接口中的方法在驱动jar包里都实现了,所以可以直接使用了。这与接口中的方法要通过子类实现没有冲突。谢谢了。

62,614

社区成员

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

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