java通過接口或者抽象類調(diào)用方法的時(shí)候,怎么知道調(diào)用的是哪個(gè)實(shí)現(xiàn)類里的方法?
用對(duì)象的getClass()方法獲的它的類,之后就可以隨意去判斷這是哪個(gè)實(shí)現(xiàn)類了。
例子::::
比如jdbc連接池的代碼,我們想要知道conn調(diào)用的close方法是釋放連接還是歸還連接,我們可以打印conn.getClass()
Connection conn = JDBCUtils.getConnection();
System.out.println(conn.getClass());
結(jié)果為class
com.alibaba.druid.pool.DruidPooledConnection,所以這個(gè)Connection的實(shí)現(xiàn)類是DruidPooledConnection,查看
源碼可以知道DruidPooledConnection的close方法是歸還連接到連接池,而不是釋放連接