java-匿名内部类

1、匿名内部类:就是内部类的简化写法。

 -  匿名内部类是局部内部类的一种,所以匿名内部类也应该写在方法里。

2、前提:存在一个类或者接口。(这里的类可以是具体类也可以是抽象类)

3、格式:

 -  new 类名或者接口名(){ 重写方法; }

4、本质是什么呢?是一个继承了该类或者实现了该接口的子类匿名对象。

5、其他:

 -  匿名内部类只针对重写一个方法的时候使用。调用多次的时候,不适合,匿名对象调用完毕就是垃圾,可以被垃圾回收器回收。

 -  匿名内部类是不能向下转型的,因为没有子类类名。

6、例:

 1 class Demo {
 2     public static void main(String[] args) {
 3         Outer o = new Outer();
 4         o.method();
 5     }
 6 }
 7 
 8 interface Inter {
 9     public void show1();
10     public void show2();
11 }
12 
13 //匿名内部类只针对重写一个方法时候使用
14 class Outer {
15     public void method() {
16         /*new Inter(){
17             public void show1() {
18                 System.out.println("show1");
19             }
20 
21             public void show2() {
22                 System.out.println("show2");
23             }
24         }.show1();*/
25 
26         Inter i = new Inter(){
27             public void show1() {
28                 System.out.println("show1");
29             }
30 
31             public void show2() {
32                 System.out.println("show2");
33             }
34 
35             /*public void show3() {
36                 System.out.println("show3");
37             }*/
38         };
39 
40         i.show1();
41         i.show2();
42         //i.show3();                        //匿名内部类是不能向下转型的,因为没有子类类名
43     }
44 }
原文地址:https://www.cnblogs.com/hfumin/p/10150403.html