日期:2014-05-20 浏览次数:20650 次
public class Database{ private Connection conn; // setter public void setConn(Connection conn){ this.conn=conn; } // getter public Connection getConn(){ return this.conn; } }
------解决方案--------------------
Connection 接口 实现类的引用。
------解决方案--------------------
再回答“那么现在conn里面存储的是什么”
通俗的说
实现接口的类中的内容肯定比接口中的内容只多不少。比如接口中的方法很多没有内容只有一个“壳”,但是实现类中就有具体的内容了。这个“具体的内容” 依各类而不同,成为一种“个性”,所以不能成为一种“共性”作为参数。
打个比方就和电脑的USB接口一个道理
方法返回接口对象,其实就是返回一个USB插口给你(那个“壳”),本身USB接口不能做任何事情。具体的实现类负责做该做的事情,所以具体类负责设计此类到底是USB鼠标还是摄像头还是游戏手柄。但是USB接口的优点就是所有的这些USB设备都可以插入同一个插槽(利用那个“壳”),就如同可以作为接口对象传入方法
------解决方案--------------------
靠,不小心点了发帖,还没说完
那么现在conn里面存储的,就是一个具体的类对象的指针,它在程序里的身份,不是USB鼠标,不是USB键盘,不是USB手柄,而是叫做“USB设备”(接口类型),但是其指向的内容和具体的设备没区别,在必要的时候只需要强制转换出来就好