类中定义接口匿名内部类

 1 class Outer
 2 {
 3     //内部类
 4     class InnerClass
 5     {
 6         void show()
 7         {
 8             System.out.println("类InnerClass中的show()...");
 9         }
10     }
11     //内部接口
12     interface InnerInterface
13     {
14         void show();
15     }
16 
17     void show()
18     {    
19         //方法中通过匿名实现方式调用
20         new InnerInterface()
21         {
22             public void show()
23             {
24                 System.out.println("接口InnerClass中的show()...类Outer中show()中的InnerInterface的show()...");
25             }
26         }.show();
27     }
28 
29 }
30 public class ClassInterface
31 {
32     public static void main(String[] args)
33     {
34         Outer outer = new Outer();
35         //outer.new InnerClass().show(); //1、外部类调用内部类中的方法show() ---成功
36         
37         //outer.show(); //2、类Outer中通过匿名实现方式调用 ---成功
38 
39         //3、外部类中通过匿名实现方式调用
40         outer.InnerInterface()
41         {
42             
43             @Override public void show()
44             {
45                 System.out.println("接口InnerClass中的show()...");
46             }
47         }.show();
48         /*
49             上面的这句报的错误:
50 
51             ClassInterface.java:40: 错误: 匿名类实现接口; 不能有限定符 - 对于新
52                 outer.new InnerInterface()
53                 1 个错误
54         */
55     }
56 }

下面可以运行:

 1 public static void main(String[] args)
 2         {
 3                 new Outer.InnerInterface()
 4                 {
 5                         @Override public void show()
 6                         {
 7                                 // TODO Auto-generated method stub
 8                                 System.out.println("覆盖没。。。。。");// 答:覆盖了!- -。
 9                         }
10                 }.show();
11         }
原文地址:https://www.cnblogs.com/hacket/p/3122526.html