A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2012-8-16 00:29  /  5470 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

具体的格式还有例子我给你写上你可以看一下
前提:继承一个类或者实现一个接口

                格式:
                        new 父类名或者接口名()
                        {
                                重写父类方法或者实现接口中的方法。
                                也可以自定义其他方法。
                        };
为什么我们使用匿名内部类呢?
因为效率较高。

什么情况下,适合使用匿名内部类。
通常在使用方法是接口类型参数,并该接口中的方法不超过三个时,可以将匿名内部类作为参数传递。
增强阅读性。
interface Inter
{
        public abstract void show();
        public abstract void show2();
}

class Outer
{
        public void method()
        {
                //匿名内部类
                new Inter() //返回的是接口的子类匿名对象
                {
                        public void show()
                        {
                                System.out.println("show");
                        }

                        public void show2()
                        {
                                System.out.println("show2");
                        }
                };

                //如果调用方法呢?
                new Inter() //返回的是接口的子类匿名对象
                {
                        public void show()
                        {
                                System.out.println("show");
                        }

                        public void show2()
                        {
                                System.out.println("show2");
                        }
                }.show();

                new Inter() //返回的是接口的子类匿名对象
                {
                        public void show()
                        {
                                System.out.println("show");
                        }

                        public void show2()
                        {
                                System.out.println("show2");
                        }
                }.show2();

                //上面调用太麻烦 多态
                Inter i = new Inter() //返回的是接口的子类匿名对象
                {
                        public void show()
                        {
                                System.out.println("show");
                        }

                        public void show2()
                        {
                                System.out.println("show2");
                        }
                };

                i.show();
                i.show2();
        }
}

class NiMingInnerClassDemo2
{
        public static void main(String[] args)
        {
                Outer o = new Outer();
                o.method();
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马