匿名内部类实现一个接口作为方法参数时,是怎样实现接口回调的呢
时间: 2024-03-18 11:39:34 浏览: 98
当一个方法的参数是一个接口类型,并且该接口类型被匿名内部类实现时,我们可以使用匿名内部类实现接口回调。具体来说,我们可以在匿名内部类中重写接口中的方法,并在方法中实现我们需要的逻辑。然后将匿名内部类的实例作为接口类型参数传递给方法。当方法执行时,它会调用该接口的方法,而该方法实际上是匿名内部类中的重写方法,从而实现了接口回调。
例如,我们可以定义一个接口`OnClickListener`,它包含一个`onClick()`方法,然后使用一个匿名内部类实现它,如下所示:
```
public interface OnClickListener {
void onClick();
}
public class Button {
public void setOnClickListener(OnClickListener listener) {
// ...
}
}
public class MyApp {
public static void main(String[] args) {
Button button = new Button();
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick() {
System.out.println("Button Clicked!");
}
});
}
}
```
在这个例子中,我们在`MyApp`类中创建了一个`Button`对象,并使用一个匿名内部类实现了`OnClickListener`接口。在匿名内部类中,我们重写了`onClick()`方法,并在方法中输出了一条消息。然后,我们将该匿名内部类的实例作为参数传递给`Button`类的`setOnClickListener()`方法。当用户点击按钮时,`Button`类会调用`OnClickListener`接口的`onClick()`方法,而实际上它会调用匿名内部类中的重写方法,从而实现了接口回调。
阅读全文