日期:2014-05-20  浏览次数:20888 次

关于java的小问题!
java中,接口中的方法不是只有方法的声明,没有方法的实现(方法体)嘛,为什么声明一个接口变量以后就可以直接调用这个接口中的方法,而且可以产生想要的效果呢?比如:
接口:Connection
此接口中有方法:Statement creatStatement()
我执行
Connection conn=DriverManager.getConnection();
Statement stmtl=conn.createStatement();
这里conn接口变量为什么可以直接调用它的这个接口方法???
求高手指教


------解决方案--------------------
DriverManager.getConnection()返回的是Connection的一个实现类啊


所以才能调用啊
------解决方案--------------------
不是每一个接口都没有方法的实现,有很多接口提供了默认实现,再说你那个getconnection已经得到了一个Connection的实例
在你举得这个例子中,connection不是一个接口,是一个类,然后conn.createStatement()创建了对象,就可以访问数据库了
------解决方案--------------------
面象接口编程,降低藕合性 你会这样写Map map = new HashMap() 而不是HashMap map = new HashMap()