java中的接口能夠被實(shí)例化嗎
寫在前面的話
學(xué)習(xí)java這么久了,好像已經(jīng)習(xí)慣了new對(duì)象,平時(shí)new對(duì)象主角是類(class)。乍一聽對(duì)接口(interface)實(shí)例化,這這這可能嗎,怕不是瘋了!下文首先通過在IDEA中編寫代碼演示說明,然后分析怎樣操作才能對(duì)接口進(jìn)行實(shí)例化。希望博主的博文能夠?qū)ava學(xué)習(xí)道路上的你有所幫助,喜歡的話點(diǎn)贊留言收藏哦~
1、在IDEA中進(jìn)行代碼演示
直接用平時(shí)new類(class)對(duì)象的方式對(duì)接口進(jìn)行操作,達(dá)不到效果,IDEA提示:Runnable' is abstract; cannot be instantiat(接口不能被實(shí)例化)!演示圖如下:

難道接口就不能通過new進(jìn)行實(shí)例化了嗎?其實(shí)不然,接口可以進(jìn)行實(shí)例化,只需要在new后將接口中未實(shí)現(xiàn)的方法進(jìn)行實(shí)現(xiàn)就好,這種做法其實(shí)是匿名內(nèi)部類的做法,本質(zhì)上講還是類的實(shí)例化。具體演示如下:

上述演示表示了如何對(duì)接口進(jìn)行new,從而創(chuàng)建實(shí)例!寫到這里基本主題已經(jīng)結(jié)束了,但是注意到上圖
中new Runnable()是灰色的,IDEA提示:需要使用lambda表達(dá)式來代替匿名內(nèi)部類。

下面使用lambda表達(dá)式進(jìn)行改寫,演示如下:

2、總結(jié)
java中接口可以通過在new對(duì)象的時(shí)候,以匿名內(nèi)部類(lambda表達(dá)式)的方式實(shí)現(xiàn)未實(shí)現(xiàn)的方法,從而來達(dá)到new對(duì)象的效果!
相關(guān)文章
Java 中的 @SneakyThrows 注解的使用方法(簡化異常處理的利與弊)
@SneakyThrows是Lombok提供的一個(gè)注解,用于簡化Java方法中的異常處理,特別是對(duì)于檢查型異常,它允許方法拋出異常而不必顯式聲明或捕獲這些異常,本文介紹Java 中的 @SneakyThrows 注解的使用方法,感興趣的朋友一起看看吧2025-03-03
Java實(shí)現(xiàn)調(diào)用接口API并返回?cái)?shù)據(jù)
這篇文章主要介紹了Java實(shí)現(xiàn)調(diào)用接口API并返回?cái)?shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Java+Swing實(shí)現(xiàn)醫(yī)院管理系統(tǒng)的完整代碼
這篇文章主要介紹了Java+Swing實(shí)現(xiàn)醫(yī)院管理系統(tǒng)的完整代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05
基于Java實(shí)現(xiàn)簡單的身材計(jì)算程序
這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)簡單的身材計(jì)算程序,可以計(jì)算身體的體脂率以及BMI數(shù)值等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12
Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法
這篇文章主要介紹了Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
java實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘并設(shè)置鬧鐘功能
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘并設(shè)置鬧鐘功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01

