1. 什么是匿名内部类?
- 隐藏了名字的内部类,实际名字为:外部类名$序号
- 可以写在成员位置,为没有名字的成员内部类
- 也可以写在局部位置,为没有名字的局部内部类
2. 匿名内部类的格式?
new 类名/接口名() {
重写类或接口的所有抽象方法;
};
3. 格式的细节
- 包含了继承或实现,方法重写,创建对象,如图:
- 格式整体其实是,一个类的子类对象,或一个接口的实现类对象
4. 匿名内部类的使用场景
- 当方法的参数是接口时,则可以传递这个接口的实现类对象(接口的多态),如果实现类只要使用一次,就可以用匿名内部类简化代码,就不用再单独创建一个实现类了
- 当方法的参数是类时,则可以传递这个类的子类对象,如果子类对象只要使用一次,也可以用匿名内部类简化代码,不用单独创建一个子类了,如图:
- 格式整体可以作为接口的实现类对象,并赋值给接口变量,实现接口多态,通过接口变量可以点出实现类内的方法如图:
- 格式整体也可直接链式编程,点出匿名内部类中的方法,如图: