匿名內(nèi)部類是否可以繼承其它類,是否可以實現(xiàn)接口?
2022-08-10 15:20 作者:網(wǎng)星軟件 | 我要投稿
1.什么是匿名內(nèi)部類?
內(nèi)部類,存在于另一個類內(nèi)部的類,而匿名內(nèi)部類,顧名思義,就是沒有名字的內(nèi)部類。
2.為什么需要匿名內(nèi)部類?
每個內(nèi)部類都能夠各自繼承某一實現(xiàn)類。因此,內(nèi)部類不受限于外部類是否已繼承自某一實現(xiàn)類。如果少了內(nèi)部類所提供的“繼承自多個具象或抽象類”的能力,設(shè)計上和編程上的某些問題會變得十分棘手。所以,從某個角度來看內(nèi)部類,你可以說它是多重繼承問題的完整解決方案。接口能夠解決其中一部分問題,但內(nèi)部類才能有效而實際地允許“多重實現(xiàn)繼承”。也就是說,內(nèi)部類實際上允許你繼承多個接口。從這個層面上使用內(nèi)部類時一般都是通過其父類或繼承的接口來進(jìn)行實例化和初始化的,如3中所示,這時內(nèi)部類的名字是多余的,所以就使用了匿名內(nèi)部類。
3.怎么實現(xiàn)匿名內(nèi)部類?
匿名內(nèi)部類的實現(xiàn)非常簡單,如有一接口
Interface A{
? ? public void method();
}
這時你可以寫一個如下的語句得到接口A的實現(xiàn)類的對象
A a=new A(){ public void method(){System.out.println("hehe");} };
而其中的{ public void method(){System.out.println("hehe");} };就是定義了一個匿名內(nèi)部類。
4.問題答案
以上可以看出匿名內(nèi)部類在實現(xiàn)時必須借助一個類或一個接口,若從這個層次上講它是可以繼承其他類也可以實現(xiàn)接口的,但若是通過extends或implements關(guān)鍵字那是不可能的。
標(biāo)簽: