Java 匿名内部类的作用
- 简化代码:无需专门定义一个具名类来实现接口或继承类,减少类文件数量,在只需简单实现特定功能时,让代码更简洁紧凑 。比如创建线程时,使用匿名内部类实现
Runnable
接口,直接在代码块中编写线程执行逻辑,无需单独定义一个实现Runnable
接口的类。 - 实现接口或抽象类:方便地在创建对象时直接实现接口或抽象类的抽象方法。像在图形用户界面编程中,实现按钮点击事件监听器接口,通过匿名内部类快速实现接口中的抽象方法,处理按钮点击事件 。
- 封装回调函数:在事件处理、异步编程等场景,可将匿名内部类作为参数传递给其他方法,实现特定事件的回调处理。例如网络请求完成后的回调,用匿名内部类定义回调逻辑,在请求结束时执行 。
- 隐藏实现细节:仅在使用的地方定义和实现,对外部隐藏具体实现细节,使代码结构更清晰
// 定义接口 interface AnimalSound {void makeSound(); }public class AnonymousInnerClassExample {public static void main(String[] args) {// 使用匿名内部类实现接口并调用抽象方法AnimalSound dog = new AnimalSound() {@Overridepublic void makeSound() {System.out.println("Woof!");}};dog.makeSound(); } }