黑马程序员技术交流社区

标题: java中的匿名内部类 [打印本页]

作者: 崔司龙    时间: 2015-6-30 22:31
标题: java中的匿名内部类
定义:没有名字的局部内部类。
        格式:
                new 接口名或者抽象类名 () {
                        // 实现接口或抽象类的方法
                        // 可以有自己的方法(但是我们一般不这么用)
                };
               
        理解:匿名内部类实际上实现了接口(或者继承了抽象类)的子类匿名对象。、
       
        举例:
                interface Animal {
                        // 抽象方法
                }

                class Cat implements Animal {
                        // 实现方法
                }
               
                //new B();
               
                //new A () {
                        //实现接口A的方法
                //};
               
                Cat c = new Cat();
               
                Test t = new Test();
                //t.show(c);
               
                t.show(new Animal() {
                        // 实现接口Animal的方法
                });
       
                是不是相当于把子类实现和创建子类对象放到一个步骤完成了。

        使用:一般在参数列表里面,如果参数是接口(抽象类),就可以使用匿名内部类替代接口(抽象类)。
       
        class Test {
                public void show (Animal a) {
                        // 这个地方的接口就可以使用匿名内部类替代
                        a.show(); // 这个show方法一定是实现类的
                }
        }
               
               
       
       
                        举例:
                        接口
                        interface Inter {
                                // 抽象方法
                        }
                       
                        class ImplTest implements Inter {
                                // 实现接口的抽象方法
                        }
                       
                        // 创建具体的实现对象
                        ImplTest it = new ImplTest();
                        // 向上转型 多态
                        Inter ii = it;
                       
                        Inter ii = new ImplTest();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2