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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冷月霜飞 中级黑马   /  2015-5-13 14:19  /  357 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在实现多线程的第二种方式中,先定义类去实现接口runable,为何不可以直接创建该类的对象,而只能创建Thread类的对象?
另外,为何又要将Runable接口的子类对象作为参数传递给Thread类的构造函数?

4 个回复

倒序浏览
因为多线程开启 需要用Thread类 并调用start方法,
他有几种不同的构造方法。
第一种就是继承Thread重写run方法调用start方法
第二种就是实现runnable 接口,避免了类的单继承问题
然后将runnable的实现类作为对象传递给Thread的构造方法 然后再调用start方法。
回复 使用道具 举报
直接创建该类对象的话。。。你那类里面有Start()方法吗?有sleep()方法吗?之所以传给Thread ,因为它那里有那些方法。
回复 使用道具 举报
学习。。。
回复 使用道具 举报
runnable 里面只有一个run方法。你想开启线程,获取当前线程名字等,用到这些方法,创建的就必须是Thread的对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马