匿名内部类:
匿名内部类是在抽象类和接口的基础之上发展起来的。
- package com.iflytek.innerclass;
- /**
- * @author xudongwang 2012-1-11
- *
- * Email:xdwangiflytek@gmail.com
- */
- public class NoNameClass01 {
- public static void main(String[] args) {
- new X().fun2();
- }
- }
- interface A {
- public void fun();
- }
- class B implements A {
- public void fun() {
- System.out.println("Hello 准备匿名内部类");
- }
- }
- class X {
- public void fun1(A a) {
- a.fun();
- }
- public void fun2() {
- this.fun1(new B());
- }
- }
通过上面的Demo,如果现在假设B类只使用一次,那么还有必要将其定义成一个单独的类么?
呵呵,此时就可以使用匿名内部类:
- package com.iflytek.innerclass;
- /**
- * @author xudongwang 2012-1-11
- *
- * Email:xdwangiflytek@gmail.com
- */
- public class NoNameClass02 {
- public static void main(String[] args) {
- new XX().fun2();
- }
- }
- interface AA {
- public void fun();
- }
- class XX {
- public void fun1(AA a) {
- a.fun();
- }
- public void fun2() {
- this.fun1(new AA() {
- public void fun() {
- System.out.println("Hello 准备匿名内部类");
- }
- });
- }
- }
http://blog.youkuaiyun.com/zzjjiandan/article/details/9189943