1.匿名内部类
是类,同时也作为对象,它定义在外部类的局部位置,比如定义在方法中,并且没有类名
其实有名字,但是该名字由系统设置,是 外部类名加上$1,可以使用getClass()查看类名
2.基本语法
new 类或接口(参数列表){
类体
}
类体中可以重写类方法或实现接口的抽象方法
3.匿名内部类相当于在底层创建了一个类,继承了父类或实现了接口,匿名内部类在使用一次之后就被销毁,但返回的对象实例仍然可以使用。
4.匿名内部类可以直接访问外部类的所有成员,包括私有成员
5.如果外部类和内部类的成员重名时,匿名内部类访问的话,遵循就近原则,若想访问外部类成员可以用 外部类名.this.成员名 来访问
6.外部其他类不能访问内部匿名类
7.使用匿名内部类创建对象后,该对象的运行类型就是匿名内部类
8.匿名内部类的参数列表,会传递给对应的构造器并调用
9.指向匿名内部类的对象可以调用方法;也可以不指定对象,直接通过匿名内部类调用方法,此时匿名内部类整体作为一个对象,即
new 类名(参数列表){
}.方法名
10.匿名内部类定义时不能添加访问修饰符,因为本身是局部变量,作用域也仅仅在包含它的方法或代码块中。
11.匿名内部类的最佳实践
当作方法的实参传递
method01(new AA() {
类体
});

被折叠的 条评论
为什么被折叠?



