当前位置: 首页 > news >正文

匿名内部类的使用场景

匿名内部类的使用场景

匿名内部类

一、核心概念

没有类名的局部内部类,用完即弃,不用单独创建子类,直接临时重写方法/实现接口。

二、4大高频使用场景(考试必背)

  1. 快速继承普通父类

只需临时重写父类少量方法,不用单独新建子类

new Animal(){
@Override
public void eat(){}
};

  1. 快速实现接口(最常用)

不用写单独实现类,一步完成接口实例化+方法重写

java

Runnable run = new Runnable() {
@Override
public void run() {}
};

  1. 事件监听/回调场景

Swing、Android、前端按钮点击监听标配用法

java

btn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {}
});

  1. 只用一次的临时对象

类仅使用一次、无需复用,省去单独建类的冗余代码

三、语法特点(选择题考点)

  1. 无类名,定义+创建对象同时完成
  2. 只能继承一个父类 / 实现一个接口
  3. 不能定义静态成员
  4. 可以访问所在方法的final/有效final局部变量
  5. 天生匿名、不可复用

四、和Lambda区别

  • 匿名内部类:适用所有接口/抽象类
  • Lambda表达式:只适用函数式接口(仅有一个抽象方法)