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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 飘的云 中级黑马   /  2015-10-25 11:08  /  732 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 飘的云 于 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();

5 个回复

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

茅塞顿开!谢谢哈,完全忘了将匿名内部类联系起来
回复 使用道具 举报
有的收获谢谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马