一、先对匿名内部类的本质进行说明
1、匿名内部类本质是一个类,能当正常类使用,
2、匿名内部类没有名字,但 jdk 会对匿名内部类分配名字
3、匿名内部类有自己的构造器
4、匿名内部类也是一个对象
二、匿名内部类的语法
new 接口/类(参数列表){ }
三、基于接口的匿名内部类
package com.hspedu.csdn;
public class Explain {
public static void main(String[] args) {
/*
1、在new一个匿名内部类之前,jdk底层会分配一个类,这个类会实现接口,
分配的类长下面这个样子:
class Explain$1 implements A{
Explain$1(){
}
@Override
public void ok() {
System.out.println("ok---");
}
}
Explain$1就是jdk底层给这匿名内部类的名字,只是你看不到
2、这个名字的命名格式是“外部类名+美元符号+数字”,这里的外部类
就是Explain,数字指这个匿名内部类第几个运行就是几
3、这个匿名内部类Explain$1和正常类区别在于,不能自己手动添加一个构造器,
Explain$1的构造器是系统提供的无参构造器
4、Explain$1匿名内部类和正常类一