在Java中,匿名內部類(Anonymous Inner Class)是一種沒有顯式地定義類名的內部類。它允許你在不創建單獨類的情況下,創建一個新的類實例,并且這個類通常只使用一次。匿名內部類在編寫簡潔、臨時的類實現時非常有用,尤其是在需要實現接口或擴展現有類時。
匿名內部類的基本用法如下:
interface MyInterface {
void doSomething();
}
public class Main {
public static void main(String[] args) {
// 使用匿名內部類實現MyInterface接口
MyInterface myInterface = new MyInterface() {
@Override
public void doSomething() {
System.out.println("Doing something...");
}
};
myInterface.doSomething();
}
}
class MyClass {
void printMessage() {
System.out.println("Hello from MyClass!");
}
}
public class Main {
public static void main(String[] args) {
// 使用匿名內部類擴展MyClass類
MyClass myClass = new MyClass() {
@Override
void printMessage() {
System.out.println("Hello from Anonymous Inner Class!");
}
};
myClass.printMessage();
}
}
interface MyInterface {
void doSomething();
}
public class Main {
public static void main(String[] args) {
someMethod(new MyInterface() {
@Override
public void doSomething() {
System.out.println("Doing something in anonymous inner class...");
}
});
}
public static void someMethod(MyInterface myInterface) {
myInterface.doSomething();
}
}
interface MyInterface {
void doSomething();
}
public class Main {
public static void main(String[] args) {
MyInterface myInterface = createMyInterfaceInstance();
myInterface.doSomething();
}
public static MyInterface createMyInterfaceInstance() {
return new MyInterface() {
@Override
public void doSomething() {
System.out.println("Doing something in anonymous inner class...");
}
};
}
}
總之,匿名內部類在Java中提供了一種簡潔的方式來實現接口或擴展現有類,而無需創建單獨的類文件。它們通常用于實現一次性使用的功能,例如事件處理程序、臨時數據結構等。