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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐志海 中级黑马   /  2013-11-21 13:59  /  1147 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 唐志海 于 2013-11-21 18:20 编辑

定义线程中有两个方法,什么时候用继承Thread?什么时候用实现Runnable接口呢?

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

4 个回复

倒序浏览
当一个类想要继承另外一个类的时候又要实现用多线程,所以就有了一个Runnable接口.
因为java不支持多继承,所以用接口处理了这个问题.
两者基本没区别.个人感觉项目一般都用Runnable接口.

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
创建线程有两种方式,一种继承Thread类,一种实现Runnable接口。

java是只支持单继承的,也就是说一个子类只能继承一个父类。
所以如果这个类只需要继承Thread类,那么继承Thread类和实现Runnable类都可以。
但是如果这个类还要继承其他的类,那么只能使用Runnable接口的形式。

其他方面Thread类和Runnable没有明确的使用要求和区别。
但是一般都建议使用Runnable接口的形式,这样有利于以后程序的扩展。

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
因为java不支持多继承。所以当一个类继承了别的类,但是它又要用多线程。所以就出了一个Runnable
回复 使用道具 举报
继承Thread类,通过编写线程继承thread类,重写run()方法来实现线程,这个类是在java.lang包中定义的,但是一个类只能继承一个父类,这个方法有这个局限。     直接实现Runnable多线程接口,Runnable只有一个抽象方法run ,并没有start()方法,也就是说要通过Thread类来启动Runnable实现的多线程。不过这个避免了继承的局限。一个类可以继承多个接口。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马