在Java中,匿名內(nèi)部類是一種沒有名字的內(nèi)部類。它通常用于需要在局部作用域內(nèi)創(chuàng)建一個(gè)類的情況,例如,當(dāng)需要一個(gè)類來實(shí)現(xiàn)某個(gè)接口或繼承某個(gè)抽象類時(shí)。
匿名內(nèi)部類的用法有如下幾種:
1.實(shí)現(xiàn)接口:
new 接口名() {
// 實(shí)現(xiàn)接口中的方法
}
2.繼承抽象類:
new 抽象類名() {
// 實(shí)現(xiàn)抽象類中的抽象方法
}
3.作為參數(shù)傳遞:
public void someMethod(SomeInterface anInterface) {
// 使用匿名內(nèi)部類實(shí)現(xiàn)接口
anInterface.doSomething();
}
// 調(diào)用 someMethod 方法
someMethod(new SomeInterface() {
public void doSomething() {
// 實(shí)現(xiàn)接口中的方法
}
});
匿名內(nèi)部類的使用可以簡化代碼,并且不需要為類取名字。但是,它也有一些限制,例如不能有構(gòu)造方法和靜態(tài)成員變量,不能訪問外部類的非final變量等。