黑马程序员技术交流社区

标题: 匿名内部类的意思 [打印本页]

作者: mls123456    时间: 2015-7-4 19:00
标题: 匿名内部类的意思
请大神简单介绍一下匿名内部类
作者: GiveUp    时间: 2015-7-4 20:47
没有名字的,定义在类内部,或者方法内部的类
作者: keto    时间: 2015-7-4 20:55
interface IA
{
        void fun();
}
class A
{
        public IA show(){
                //定义了一个有名字的内部类;
        /*        class B implements IA
                {
                        public void fun(){
                                System.out.println("B-->fun()");
                        }
                }
                IA a = new B();
                return a;
        */
                //************使用匿名的内部类***************//
                //既然内部类的名字,对外部来说没有什么用,可以使用匿名的
                IA a = new IA(){//IA a = new B();//定义一个IA的子类,并且实例化了
                        //内部,必须实现IA接口中的抽象方法
                        public void fun(){
                                System.out.println("B-->fun()");
                        }
                };
                return a;
       
                //写法的格式:new 接口/抽象类(){//重写方法};
        /*        return new IA(){
                        //内部,必须实现IA接口中的抽象方法
                        public void fun(){
                                System.out.println("B-->fun()");
                        }
                };
                */
        }
}
class Demo
{
        public static void main(String[] args)
        {
                A a = new A();
                IA obj = a.show();
                obj.fun();//调用匿名内部类的方法;
        }
}

作者: wengjialiang    时间: 2015-7-4 21:29
keto 发表于 2015-7-4 20:55
interface IA
{
        void fun();

学习了……还是要好好地理解吧
作者: threeforPP    时间: 2015-7-4 21:32
个人理解,不知道能不能帮到你。假如不用匿名内部类的话,我们想用,就得在上面new一个出来;有了匿名内部类,我们就不用写new的那一步了,直接在括号内写要new的就行了。不知道我理解的对不对
作者: mls123456    时间: 2015-7-5 20:54
keto 发表于 2015-7-4 20:55
interface IA
{
        void fun();

谢谢,,,,,,,,,,,,,,,,,,,,,
作者: q953655369    时间: 2015-7-5 21:34
我也不太明白啊
作者: q953655369    时间: 2015-7-5 21:56
就是能调接口
作者: hejin67410    时间: 2015-9-21 20:52
谢谢分享
作者: stream_lin    时间: 2015-9-21 21:06
感觉匿名内部类看的人晕晕的 得花时间好好理解下,我也顺便看看有没有大神分享下大神们都是怎么理解的
作者: purgatory    时间: 2015-9-21 21:12
没有名字的内部类 需要先定义个接口




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