java中的接口能夠被實(shí)例化嗎
寫(xiě)在前面的話
學(xué)習(xí)java這么久了,好像已經(jīng)習(xí)慣了new對(duì)象,平時(shí)new對(duì)象主角是類(lèi)(class)。乍一聽(tīng)對(duì)接口(interface)實(shí)例化,這這這可能嗎,怕不是瘋了!下文首先通過(guò)在IDEA中編寫(xiě)代碼演示說(shuō)明,然后分析怎樣操作才能對(duì)接口進(jìn)行實(shí)例化。希望博主的博文能夠?qū)ava學(xué)習(xí)道路上的你有所幫助,喜歡的話點(diǎn)贊留言收藏哦~
1、在IDEA中進(jìn)行代碼演示
直接用平時(shí)new類(lèi)(class)對(duì)象的方式對(duì)接口進(jìn)行操作,達(dá)不到效果,IDEA提示:Runnable' is abstract; cannot be instantiat(接口不能被實(shí)例化)!演示圖如下:
難道接口就不能通過(guò)new進(jìn)行實(shí)例化了嗎?其實(shí)不然,接口可以進(jìn)行實(shí)例化,只需要在new后將接口中未實(shí)現(xiàn)的方法進(jìn)行實(shí)現(xiàn)就好,這種做法其實(shí)是匿名內(nèi)部類(lèi)的做法,本質(zhì)上講還是類(lèi)的實(shí)例化。具體演示如下:
上述演示表示了如何對(duì)接口進(jìn)行new,從而創(chuàng)建實(shí)例!寫(xiě)到這里基本主題已經(jīng)結(jié)束了,但是注意到上圖中new Runnable()是灰色的,IDEA提示:需要使用lambda表達(dá)式來(lái)代替匿名內(nèi)部類(lèi)。
下面使用lambda表達(dá)式進(jìn)行改寫(xiě),演示如下:
2、總結(jié)
java中接口可以通過(guò)在new對(duì)象的時(shí)候,以匿名內(nèi)部類(lèi)(lambda表達(dá)式)的方式實(shí)現(xiàn)未實(shí)現(xiàn)的方法,從而來(lái)達(dá)到new對(duì)象的效果!
相關(guān)文章
Java中使用開(kāi)源庫(kù)JSoup解析HTML文件實(shí)例
這篇文章主要介紹了Java中使用開(kāi)源庫(kù)JSoup解析HTML文件實(shí)例,Jsoup是一個(gè)開(kāi)源的Java庫(kù),它可以用于處理實(shí)際應(yīng)用中的HTML,比如常見(jiàn)的HTML格式化就可以用它來(lái)實(shí)現(xiàn),需要的朋友可以參考下2014-09-09Java實(shí)現(xiàn)PDF轉(zhuǎn)圖片的三種方法
有些時(shí)候我們需要在項(xiàng)目中展示PDF,所以我們可以將PDF轉(zhuǎn)為圖片,然后已圖片的方式展示,效果很好,Java使用各種技術(shù)將pdf轉(zhuǎn)換成圖片格式,并且內(nèi)容不失幀,本文給大家介紹了三種方法實(shí)現(xiàn)PDF轉(zhuǎn)圖片的案例,需要的朋友可以參考下2023-10-10Java實(shí)現(xiàn)簡(jiǎn)單的表達(dá)式計(jì)算器功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)簡(jiǎn)單的表達(dá)式計(jì)算器功能,結(jié)合實(shí)例形式分析了Java針對(duì)輸入表達(dá)式的符號(hào)分解與數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-06-06SpringBoot之logback-spring.xml不生效的解決方法
這篇文章主要介紹了SpringBoot之logback-spring.xml不生效的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Java生成隨機(jī)數(shù)之Random與ThreadLocalRandom性能比較詳解
大家項(xiàng)目中如果有生成隨機(jī)數(shù)的需求,我想大多都會(huì)選擇使用Random來(lái)實(shí)現(xiàn),它內(nèi)部使用了CAS來(lái)實(shí)現(xiàn)。?實(shí)際上,JDK1.7之后,提供了另外一個(gè)生成隨機(jī)數(shù)的類(lèi)ThreadLocalRandom,那么他們二者之間的性能是怎么樣的呢?本文就來(lái)詳細(xì)說(shuō)說(shuō)2022-12-12SpringBoot中@ComponentScan注解過(guò)濾排除不加載某個(gè)類(lèi)的3種方法
這篇文章主要給大家介紹了關(guān)于SpringBoot中@ComponentScan注解過(guò)濾排除不加載某個(gè)類(lèi)的3種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-07-07Java實(shí)現(xiàn)批量發(fā)送帶附件的郵件代碼
大家好,本篇文章主要講的是Java實(shí)現(xiàn)批量發(fā)送帶附件的郵件代碼,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01