日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

接口怎么实例化?

發(fā)布時(shí)間:2023/12/1 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 接口怎么实例化? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最開(kāi)始看到數(shù)據(jù)庫(kù)連接的時(shí)候忽然想到這個(gè)問(wèn)題:

    Connection con=null;try {Class.forName(Driver);} catch (ClassNotFoundException e) {e.printStackTrace();}try {con=DriverManager.getConnection(url, user, pass);} catch (SQLException e) {e.printStackTrace();}

Connection是java中的一個(gè)接口,但是使用的時(shí)候是這樣的:
Connection con=DriverManager.getConnection(url, user, pass);而且方法getConnection的返回類(lèi)型是Connection類(lèi)型。也是接口類(lèi)型?
接口不是不能實(shí)例化嗎?為什么能實(shí)例化,而且,接口里面的方法不是沒(méi)有方法實(shí)現(xiàn)嗎?為什么能夠直接調(diào)用con.Close()等等的方法。

?

接口不能直接new,但是它可以作為別的類(lèi)的變量。如果有類(lèi)實(shí)現(xiàn)了這個(gè)接口,則可以new!

舉一個(gè)簡(jiǎn)單的例子:java.lang.List是一個(gè)接口,但是List list=new ArrayList();是沒(méi)有任何錯(cuò)誤的,因?yàn)锳rrayList實(shí)現(xiàn)了List接口。

這樣來(lái)回答吧,為什么父類(lèi)的引用能指向子類(lèi)對(duì)象呢?

父類(lèi)定義了子類(lèi)中一定存在的方法和屬性。

同理,接口的引用指向他的實(shí)例化對(duì)象也是因?yàn)閷?shí)例化對(duì)象中必然要實(shí)現(xiàn)接口中定義的方法和屬性。

對(duì)象的類(lèi)型還是new出來(lái)的類(lèi)型,或方法返回的類(lèi)型

(如DriverManager.getConnection(String a,String b,String c)靜態(tài)方法返回Connection接口的實(shí)例化對(duì)象)。

也可以這樣寫(xiě):

Connection conn =new XXX ()

XXX為實(shí)現(xiàn)Connection接口的類(lèi)。

只不過(guò)引用(變量名)如conn只能調(diào)用接口定義的方法(這也是接口的意義之一)。

?

DriverManager.getConnection 返回的是接口的一個(gè)實(shí)現(xiàn),是實(shí)現(xiàn)類(lèi),這個(gè)類(lèi)已經(jīng)實(shí)現(xiàn)了Connection這個(gè)接口,

但是getConnection方法里面就已經(jīng)轉(zhuǎn)換了類(lèi)型,轉(zhuǎn)換成Connection類(lèi)型。但是Con這個(gè)實(shí)例實(shí)際上還是指向?qū)崿F(xiàn)類(lèi)的實(shí)例。不過(guò)這個(gè)實(shí)例只能調(diào)用接口有的方法。

?

一位網(wǎng)友的回答挺好的:

小霸王游戲機(jī)應(yīng)該玩過(guò)吧,接口(Connection)就像是插游戲卡的插槽,它事先弄好了各種方法(con.close),但是具體實(shí)現(xiàn)沒(méi)有寫(xiě)進(jìn)去。
這時(shí)候 類(lèi)就像是游戲卡(你get到的對(duì)象)一樣,它的方法和插口一樣,但是它還寫(xiě)了這些方法是如何實(shí)現(xiàn)的。 于是我們把游戲卡(你get到的對(duì)象)插到游戲機(jī)的插槽(connection)上,就可以玩游戲啦。 游戲機(jī)可不知道游戲卡的具體實(shí)現(xiàn)是什么,但是它知道插槽有什么方法,直接調(diào)用插槽的方法(con.close)就行,
因?yàn)椴宀凵喜逯螒蚩?#xff0c;就會(huì)調(diào)用游戲卡的該方法。

?

轉(zhuǎn)載于:https://www.cnblogs.com/alsf/p/6685607.html

總結(jié)

以上是生活随笔為你收集整理的接口怎么实例化?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。