在Java中,匿名內(nèi)部類(Anonymous Inner Class)是一種沒有顯式地定義類名的內(nèi)部類。它允許你在不創(chuàng)建單獨類的情況下,創(chuàng)建一個新的類實例,并且這個類通常只使用一次。匿名內(nèi)部類在編寫簡潔、臨時的類實現(xiàn)時非常有用,尤其是在需要實現(xiàn)接口或擴展現(xiàn)有類時。
匿名內(nèi)部類的基本用法如下:
interface MyInterface {
void doSomething();
}
public class Main {
public static void main(String[] args) {
// 使用匿名內(nèi)部類實現(xiàn)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) {
// 使用匿名內(nèi)部類擴展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...");
}
};
}
}
總之,匿名內(nèi)部類在Java中提供了一種簡潔的方式來實現(xiàn)接口或擴展現(xiàn)有類,而無需創(chuàng)建單獨的類文件。它們通常用于實現(xiàn)一次性使用的功能,例如事件處理程序、臨時數(shù)據(jù)結(jié)構(gòu)等。