黑马程序员技术交流社区

标题: Runnable创建对象? [打印本页]

作者: 飘的云    时间: 2015-10-25 11:08
标题: Runnable创建对象?
本帖最后由 飘的云 于 2015-10-26 10:34 编辑

在多线程的最后部分,提到开发中常用的操作是将很多代码同时运行所以应用多线程。但是Runnable不是借口吗?怎么能建立对象???
Runnable r  = new Runnable()
                {
                        public void run()
                        {
                                for(int x=0; x<100; x++)
                                {
                                        System.out.println(Thread.currentThread().getName()+"....."+x);
                                }
                        }
                };
                new Thread(r).start();

作者: 叶子和大人    时间: 2015-10-25 11:14
Runnable是接口不能创建对象,以上的写法是:前半部分  Runnable r  是使用Runnable创建一个引用,后半部分是使用匿名内部类来创建一个实例对象,{}为一个对象,他是Runnable的一个子类,只是他没有名字。假如不太懂,就看看匿名内部类的格式,应该会有收获。
作者: 顽固派。    时间: 2015-10-25 11:57
这要涉及到java的一种特性,叫做向上转型和向下转型。类对象可以用其父类或是该类实现的接口来进行实例化,Thread类就是实现了Runnable接口,所以可以使用new Runnable()的方式对Thread t 进行实例化。
作者: dai2686779    时间: 2015-10-25 12:23
6666666666666
作者: 飘的云    时间: 2015-10-26 10:29
叶子和大人 发表于 2015-10-25 11:14
Runnable是接口不能创建对象,以上的写法是:前半部分  Runnable r  是使用Runnable创建一个引用,后半部分 ...

茅塞顿开!谢谢哈,完全忘了将匿名内部类联系起来
作者: 雨来    时间: 2015-10-26 11:18
有的收获谢谢了




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