匿名類是不能有名字的類,它們不能被引用,只能在創建時用New語句來聲明它們。匿名類的聲明是在編譯時進行的,實例化在運行時進行,這意味著for循環中的一個new語句會創建相同匿名類的幾個實例,而不是創建幾個不同匿名類的一個實例。
匿名類的目的是在某個地方需要特殊的實現,因此在該處編寫其實現,並獲取它的實例,調用它的方法。不要在匿名內部類編寫其他的方法,是不可見的。
形式為:new <類或接口> <類的主體>
- 繼承一個類,重寫其方法
- 實現一個接口,可以是多個
案例:
public class TestAnonymousClass{
public static void main(String args[]){
TestAnonymousClass testAnonymousClass=new TestAnonymousClass();
testAnonymousClass.show();
}
//在這個方法中構造了一個匿名內部類
private void show(){
Out anony=new Out(){ // 獲取匿名內部類實例
void show(){ //重寫父類的方法
System.out.println("this is Anonymous InterClass showing.");
}
};
anony.show();// 調用其方法
}
}
// 已有類Out;匿名內部類通過重寫其方法獲得另外的實現
class Out{
void show(){
System.out.println("this is Out showing.");
}
}