BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #16746同步于 2010/12/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

求助:关于interface java.sql.Connection

o0allen0o
2010/12/8镜像同步12 回复
JAVA 连接数据库的时候: Connection conn = DriverManager.getConnection(url,username,password);//接口声明变量,ok 。。。。 conn.close(); 1.为什么connection是接口,还能调用它的方法呢? 2.static Connection getConnection(String url, String user, String password)这是DriverManager的getConnection方法签名。 “接口变量必须引用实现了接口的类对象”《core java》 为什么这里看起来Connection的变量引用了一个Connection对象??
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
ppooooll机器人#1 · 2010/12/8
多态吧 【 在 o0allen0o (allen) 的大作中提到: 】 : Connection conn = DriverManager.getConnection();//接口声明变量,ok : conn.close(); : 1.为什么connection是接口,还能调用它的方法呢? : ...................
o0allen0o机器人#2 · 2010/12/8
【 在 ppooooll 的大作中提到: 】 : 多态吧 : 【 在 o0allen0o (allen) 的大作中提到: 】 : : Connection conn = DriverManager.getConnection();//接口声明变量,ok : ................... 你的意思是conn引用的是一个实现了Connection接口的类的实例是么?可是我查看java api 文档,DriverManaget.getConnection()返回的就是Connection... 能否讲清楚些 多谢~
ericyosho机器人#3 · 2010/12/8
鸭子是动物,返回的类型是动物,但实际上指向的对象是鸭子,难道不行么?
ppooooll机器人#4 · 2010/12/8
【 在 o0allen0o 的大作中提到: 】 : : 多态吧 : : 【 在 o0allen0o (allen) 的大作中提到: 】 : : : Connection conn = DriverManager.getConnection();//接口声明变量,ok : ................... 的确返回的类型是connection,这是个接口,是虚的。 但是到了运行的时候,DriverManager.getConnection()返回的是一个实实在在的对象。 同时,它可以是一个接口。 也就是说对象实现了接口,和 对象 is a 接口 没有什么不同。 这里conn名义是接口,实际上conn是对象。 我个人是这么理解的,不知道对不对。
o0allen0o机器人#5 · 2010/12/8
【 在 ericyosho 的大作中提到: 】 : 鸭子是动物,返回的类型是动物,但实际上指向的对象是鸭子,难道不行么? : -- : 无代码,无真相 =。= : ................... 你说的情况,是ok 但是这里情况不一样吧 java api上DriverManager.getConnection()的返回类型是Connection,而Connection是一个接口
hotcode机器人#6 · 2010/12/8
interface Connection{ .... } class ConnectionImpl implements Connection { .... } public class DriverManager{ public static Connection getConnection(){ return new ConnectionImpl(); } } 【 在 o0allen0o 的大作中提到: 】 : : 鸭子是动物,返回的类型是动物,但实际上指向的对象是鸭子,难道不行么? : : -- : : 无代码,无真相 =。= : ...................
o0allen0o机器人#7 · 2010/12/8
【 在 hotcode 的大作中提到: 】 : interface Connection{ : .... : } : ................... 原来有ConnectionImpl类 多谢! 请问你从哪查到这个的呢?
ppooooll机器人#8 · 2010/12/9
这是他为了说明问题自己创造的吧 【 在 o0allen0o (allen) 的大作中提到: 】 【 在 hotcode 的大作中提到: 】 : interface Connection{ : .... : } : ................... 原来有ConnectionImpl类 多谢! 请问你从哪查到这个的呢?
o0allen0o机器人#9 · 2010/12/9
【 在 ppooooll 的大作中提到: 】 : 这是他为了说明问题自己创造的吧 : 【 在 o0allen0o (allen) 的大作中提到: 】 : 【 在 hotcode 的大作中提到: 】 : ................... 没有,刚查看了mysql的java驱动 里面确实有这个类ConnectionImpl 估计jdbc api 里面 Connection 这个接口 没有实现 而由mysql的java驱动来实现 不知道是不是这样?