- 概念:匿名内部类是局部内部类的一种(必须写在方法里)
* 就是内部类的简化写法。
- 前提:存在一个类或者接口
* 这里的类可以是具体类也可以是抽象类。
- 格式:
new 类名或者接口名(){
重写方法;
}
Eg:
new Inter() {//实现Inter接口
重写抽象方法
}
- 本质是什么呢?
* 是一个继承了该类或者实现了该接口的子类匿名对象。
- 匿名内部类只针对重写一个方法时使用(因为调用多个方法得new多次,过于麻烦)
- 匿名内部类不能向下转型,因为子类没有名字
public class Demo6 {
public static void main(String[] args) {
Outer5 o = new Outer5();
o.method();
}
}
interface Inter {
public void print();
}
class Outer5 {
public void method() {
new Inter() {//实现了Inter接口的子类匿名对象
public void print() {
System.out.println(111);
}
}.print();//.之前的东西相当于一个对象
}
}