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

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

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

下面使用lambda表達式進行改寫,演示如下:

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

