匿名内部类:
作用:
实现类+ 重写方法+ 创建对象 一气呵成,就是将正常情景下的三个步骤一步搞定,实现的是匿名内部类对象。
书写方法:new 接口名称(或者抽象类或者普通类名) (){ //重写接口或抽象类中的方法 }
示例代码:
注:该实例代码设计到适配器模式,参考下面这篇文章
标题:Java的适配器模式
链接:https://blog.csdn.net/weixin_37766087/article/details/92424025
//按钮
public class Button {
//按钮上是有一些行为的,即有一些事件eventlistener
private MouseListener ml;
public void addListener(MouseListener ml){
this.ml=ml;
}
public void click()
{
ml.onClick();
}
public void dbClick(){
ml.onDbClick();
}
}
//监听器接口
public interface MouseListener {
//鼠标监听器中有些方法
public void onClick();
public void onDbClick(); //双击事件
public void onRightClick();//不常用的方法
}
//适配器抽象类
abstract class MouseListenerAdapter implements MouseListener{
public void onRightClick(){};//抽象类空实现不常用的方法
}
//程序入口:
public class Main {
public static void main(String[] args)
{
Button b1=new Button();
//匿名内部类实现接口
b1.addListener(new MouseListenerAdapter(){ //这里addListener的参数本来是接口类型,由于适配器抽象类实现了接口,因此可以直接用该抽象类的匿名内部类对象作为参数传入
public void onClick(){
System.out.println("1");
}//匿名内部类
public void onDbClick()
{
System.out.println("2");
}
});
b1.click();
b1.dbClick();
}
}