在 Java 中,匿名内部类是一种特殊的内部类,它没有显式的类名,并且通常用于创建接口的实例或继承抽象类。以下是一个简单的 Java 代码示例,展示了如何使用匿名内部类:
public class OuterClass {
public void outerMethod() {
// 使用匿名内部类实现接口
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Anonymous inner class running");
}
};
// 使用匿名内部类继承抽象类
AbstractClass abstractClass = new AbstractClass() {
@Override
public void abstractMethod() {
System.out.println("Anonymous inner class implementing abstract method");
}
};
// 调用匿名内部类的方法
runnable.run();
abstractClass.abstractMethod();
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
outer.outerMethod();
}
// 抽象类
abstract static class AbstractClass {
public abstract void abstractMethod();
}
}
在上面的示例中,我们在 outerMethod()
方法中使用了两个匿名内部类。首先,我们使用匿名内部类实现了 Runnable
接口。匿名内部类直接在 new Runnable()
的位置上定义,并重写了 run()
方法。然后,我们使用匿名内部类继承了抽象类 AbstractClass
,并实现了其中的抽象方法 abstractMethod()
。
在 outerMethod()
方法中,我们创建了匿名内部类的实例 runnable
和 abstractClass
,并调用了它们的方法。
请注意,匿名内部类没有显式的类名,它是在创建实例的同时定义的。因此,它的作用域通常是局部的,仅在定义它的方法内部有效。