`

Java:Java中匿名内部类的作用

    博客分类:
  • java
阅读更多
Java的内部类和C++中的嵌套类有本质的不同:C++的嵌套类没有指向包装类的句柄。仅仅表达一个封装的概念;但是Java的内部类不同,它可以访问包装类的成员(这表示它拥有指向包装类的句柄)。
     匿名内部类是内部类的一种简化写法:return new Wrapper {
                                        ...
                                     };
     等价于:Wrapped extends Wrapper {
          ...
          }
          return new Wrapped();

  难道匿名内部类就只这一点作用吗?
  考虑一下这样的case:

  interface ICount {
    int count();
  }

  class Parent {
    int i = 0;
    int count() {
      return i++;
    }
  }

       有一个类Child,它既想继承Parent的count()方法,又想实现ICount接口中的count方法,这个时候怎么办呢?内部类就可以大显身手了:
  class Child extends Parent {
    ICount getCount() {
      return new ICount {
        int i = 0;
        int count() {
         return (i *= 2);
        }
      }
    }
  }

资料来源:学网(www.xue5.com),原文地址:http://www.xue5.com/itedu/200707/130587.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics