黑马程序员技术交流社区

标题: 匿名内部类为什么这样写 [打印本页]

作者: 刘家斌    时间: 2014-10-14 18:20
标题: 匿名内部类为什么这样写
主函数里面的代码是什么意思?调用的方法不是抽象的吗?
interface Inter
{
        void inter();
}
class Test
{
        public static Inter function()
        {
                return  new Inter()
                {
                        public void inter()
                        {
                                System.out.println("匿名内部类练习");
                        }
                };
        }
}

class  NiMingTest
{
        public static void main(String[] args)
        {
                Test.function().inter();
        }
}
作者: Eagle    时间: 2014-10-14 20:33
感觉还没有学到。。。
作者: qq8921310    时间: 2014-10-14 20:35
实现了接口里的方法才可以被创建的甚至还可以起名字,   个人理解。
作者: 354620815    时间: 2014-10-14 20:40
不然怎么写。

作者: 980344791    时间: 2014-10-14 20:43
就只是这种写法习惯就好。。。
作者: 付江涛    时间: 2014-10-14 21:06
public static void main(String[] args)  为什么要这样写?
作者: mmppp    时间: 2014-11-26 17:21
首先    Test.function(),因为function是静态的,所以用类名调用,没有问题吧。

然后,想一下,你调用了function后得到的是什么,是一个对象 new Inter(),对吧。

这个对象里面有一个方法,叫inter()。所以对象调用方法,不是.inter()吗?

只是连载一起写了 。
其实分开写就是     Test t=new Test;
                     Inter i   =   t.function();
                       i.inter();




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