Java中匿名類的兩種實(shí)現(xiàn)方式
使用匿名內(nèi)部類課使代碼更加簡(jiǎn)潔、緊湊,模塊化程度更高。內(nèi)部類能夠訪問(wèn)外部?jī)?nèi)的一切成員變量和方法,包括私有的,而實(shí)現(xiàn)接口或繼承類做不到。然而這個(gè)不是我說(shuō)的重點(diǎn),我說(shuō)的很簡(jiǎn)單,就是匿名內(nèi)部類的兩種實(shí)現(xiàn)方式:第一種,繼承一個(gè)類,重寫(xiě)其方法;第二種,實(shí)現(xiàn)一個(gè)接口(可以是多個(gè)),實(shí)現(xiàn)其方法。下面通過(guò)代碼來(lái)說(shuō)明:
public class TestAnonymousInterClass{ public static void main(String args[]){ TestAnonymousInterClass test=new TestAnonymousInterClass(); test.show(); } //在這個(gè)方法中構(gòu)造了一個(gè)匿名內(nèi)部類 private void show(){ Out anonyInter=new Out(){// 獲取匿名內(nèi)部類實(shí)例 void show(){//重寫(xiě)父類的方法 System.out.println("this is Anonymous InterClass showing."); } }; anonyInter.show();// 調(diào)用其方法 } } // 這是一個(gè)已經(jīng)存在的類,匿名內(nèi)部類通過(guò)重寫(xiě)其方法,將會(huì)獲得另外的實(shí)現(xiàn) class Out{ void show(){ System.out.println("this is Out showing."); } }
程序運(yùn)行的輸出結(jié)果為:
this is Anonymous InterClass showing.
所以在這里看出,匿名內(nèi)部類有了自己的實(shí)現(xiàn)。其實(shí)很簡(jiǎn)單,使用匿名內(nèi)部類是因?yàn)槲疫@地方需要有點(diǎn)什么特殊的實(shí)現(xiàn),所以我就在這地方把具體實(shí)現(xiàn)也給了出來(lái)了。然后我就在這地方獲取它的實(shí)例,調(diào)用它的方法。
接口的方式,只要把父類換成接口就行了,沒(méi)必要給出代碼了。
使用匿名內(nèi)部類時(shí)我們不要忘了我們的目的,我們只是在這地方想對(duì)某個(gè)類有特殊的實(shí)現(xiàn)。而不要想得太多,在匿名內(nèi)部編寫(xiě)其它的方法。在匿名內(nèi)部類中編寫(xiě)的自己的方法是不可見(jiàn)的。此種做法是毫無(wú)意義的,當(dāng)然一般也不會(huì)這么做。在這里只是告訴初學(xué)者對(duì)于匿名內(nèi)部類不要想的太多,而要這么想:匿名內(nèi)部類就是重寫(xiě)父類或接口的方法。
匿名內(nèi)部類是沒(méi)有名字的,所以我們沒(méi)辦法獲得其類型,而只能把它當(dāng)作超類或接口類型來(lái)使用。
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
詳解log4j.properties的簡(jiǎn)單配置和使用
本篇文章主要介紹了詳解log4j.properties的簡(jiǎn)單配置和使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12基于list stream: reduce的使用實(shí)例
這篇文章主要介紹了list stream: reduce的使用實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09springboot異步處理@NotBlank或@NotNull注釋校驗(yàn)不生效問(wèn)題
這篇文章主要介紹了springboot異步處理@NotBlank或@NotNull注釋校驗(yàn)不生效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01spring注解識(shí)別一個(gè)接口的多個(gè)實(shí)現(xiàn)類方法
下面小編就為大家?guī)?lái)一篇spring注解識(shí)別一個(gè)接口的多個(gè)實(shí)現(xiàn)類方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04利用Spring IOC技術(shù)實(shí)現(xiàn)用戶登錄驗(yàn)證機(jī)制
這篇文章主要為大家詳細(xì)介紹了Spring IOC技術(shù)實(shí)現(xiàn)用戶登錄驗(yàn)證機(jī)制的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10feign實(shí)現(xiàn)傳遞參數(shù)的三種方式小結(jié)
這篇文章主要介紹了feign實(shí)現(xiàn)傳遞參數(shù)的三種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06