匿名内部类的格式和理解
- A:匿名内部类
- 就是内部类的简化写法。
- B:前提:存在一个类或者接口
- 这里的类可以是具体类也可以是抽象类。
匿名内部类,意思就是没有名字。没有名字就需要想办法表示它。
怎么表示它呢?就是要实现一个接口或者继承一个类。
必须要和外面的某个接口或者某个类产生关系,这才是匿名内部类。
- 这里的类可以是具体类也可以是抽象类。
- C:格式
new 类名或者接口名(){
重写方法;
} - D:本质是什么呢?
- 是一个继承了该类或者实现了该接口的子类匿名对象。
E:案例演示
按照要求来一个匿名内部类
class Demo04_NoNameInnerClass{ public static void main(String[] args){ Outer o = new Outer(); o.method(); } } interface Inter{ public void print(); } /* //有名字的内部类 class Outer{ class Inner implements Inter{ public void print() { System.out.println("print"); } } public void method(){ //Inner i = new Inner(); //i.print(); new Inner().print(); } }*/ //匿名内部类 //匿名内部类是局部内部类的一种,所以必须写在方法里。 class Outer{ public void method(){ //整个代表Inter的子类对象,然后调用print方法 new Inter(){ //实现Inter接口 public void print(){ //重写抽象方法 System.out.println("print"); } }.print(); } }