更新時(shí)間:2020-07-27 16:03:59 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2301次
使用匿名內(nèi)部類課使代碼更加簡潔、緊湊,模塊化程度更高。內(nèi)部類能夠訪問外部內(nèi)的一切成員變量和方法,包括私有的,而實(shí)現(xiàn)接口或繼承類做不到。然而這個(gè)不是我說的重點(diǎn),我說的很簡單,就是匿名內(nèi)部類的兩種實(shí)現(xiàn)方式:第一種,繼承一個(gè)類,重寫其方法;第二種,實(shí)現(xiàn)一個(gè)接口(可以是多個(gè)),實(shí)現(xiàn)其方法。下面通過代碼來說明:
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(){//重寫父類的方法??
????System.out.println("this is Anonymous InterClass showing.");??
???}??
??};??
??anonyInter.show();// 調(diào)用其方法??
?}??
}???
// 這是一個(gè)已經(jīng)存在的類,匿名內(nèi)部類通過重寫其方法,將會(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í)很簡單,使用匿名內(nèi)部類是因?yàn)槲疫@地方需要有點(diǎn)什么特殊的實(shí)現(xiàn),所以我就在這地方把具體實(shí)現(xiàn)也給了出來了。然后我就在這地方獲取它的實(shí)例,調(diào)用它的方法。
接口的方式,只要把父類換成接口就行了,沒必要給出代碼了。
使用匿名內(nèi)部類時(shí)我們不要忘了我們的目的,我們只是在這地方想對(duì)某個(gè)類有特殊的實(shí)現(xiàn)。而不要想得太多,在匿名內(nèi)部編寫其它的方法。在匿名內(nèi)部類中編寫的自己的方法是不可見的。此種做法是毫無意義的,當(dāng)然一般也不會(huì)這么做。在這里只是告訴初學(xué)者對(duì)于匿名內(nèi)部類不要想的太多,而要這么想:匿名內(nèi)部類就是重寫父類或接口的方法。
匿名內(nèi)部類是沒有名字的,所以我們沒辦法獲得其類型,而只能把它當(dāng)作超類或接口類型來使用。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)Java中的匿名類方法覆蓋”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743