黑马程序员技术交流社区

标题: 快速掌握匿名内部类,附面试题代码 [打印本页]

作者: 邱石    时间: 2015-6-7 16:09
标题: 快速掌握匿名内部类,附面试题代码
匿名内部类(掌握)
                A:是局部内部类的简化形式
                B:前提
                        存在一个类或者接口(这里的类可以是具体类也可以是抽象类)
                C:格式:
                        new 类名或者接口名() {
                                重写方法;
                        };   //这里就相当于是一个重写了父类或者实现了接口的抽象方法的匿名对象。
                D:本质:
                        其实是继承该类或者实现接口的子类匿名对象
        (8)匿名内部类在开发中的使用
                我们在开发的时候,会看到抽象类,或者接口作为参数。
                而这个时候,我们知道实际需要的是一个子类对象。
                如果该方法仅仅调用一次,我们就可以使用匿名内部类的格式简化。
               
                interface Person {
                        public abstract void study();
                }
               
                class PersonDemo {
                        public void method(Person p) {
                                p.study();
                        }
                }
               
                class PersonTest {
                        public static void main(String[] args) {
                                PersonDemo pd = new PersonDemo();
                                pd.method(new Person() {
                                        public void study() {
                                                System.out.println("好好学习,天天向上");
                                        }
                                });//当调用匿名内部类次数比较少时,用这种方式,可以节省内存空间。
                        }
                }
               
        (9)匿名内部类的面试题(补齐代码)
                interface Inter {
                        void show();
                }
               
                class Outer {
                        //补齐代码
                        public static Inter method() {//返回值是接口的方法
                                return new Inter() {//匿名内部类
                                        public void show() {
                                                System.out.println("HelloWorld");
                                        }       
                                };
                        }
                }
               
                class OuterDemo {
                        public static void main(String[] args) {
                                Outer.method().show(); //链式编程
                        }
                }


作者: 流水0215    时间: 2015-6-7 17:17
挺好,学习一下
作者: CLAY    时间: 2015-6-7 19:14
不错  复习了
作者: 施洋    时间: 2015-6-7 19:21
一起学习
作者: 古风_菜鸟    时间: 2015-6-7 20:02
感谢分享,学习了
作者: 郝民杰    时间: 2015-6-7 20:10
之前看匿名内部类纠结好久,这一块要是通了,感觉会有一个反刍的作用,感谢分享。
作者: gainn    时间: 2015-6-7 21:10
我自今都纠缠在匿名内部类的写法上无法自拔……每次使用的时候都要去翻书套格式……完全没理解匿名写法的规则含义……
作者: 武汉小菜鸟    时间: 2015-6-7 21:28
不错,不错!!
作者: 邱石    时间: 2015-6-7 22:21
流水0215 发表于 2015-6-7 17:17
挺好,学习一下

共同进步,共同努力
作者: 仲德明    时间: 2015-6-7 22:27
很需要,谢谢
作者: 银哥    时间: 2015-6-7 22:28
不错,学习了
作者: richaled    时间: 2015-6-8 08:12
总结的不错
作者: 黯然残影    时间: 2015-6-8 12:02
总结的不错,学习学习




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