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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨兴庭 于 2013-7-10 22:14 编辑

正好学到多线程 老师讲到 runnable接口的用法,   就拿老师 那个例子 来比喻
student已经继承了person, 但是 student里有一段需要被多线程的部分,  但是不能实现多继承,所以才出现了 。 runnable
但是, 直接在student里创建一个内部类, 然后用内部类来继承thread   这样 可行吗?  。  
如果行的话,  那和runnable在 方法应用上 会有什么区别吗。 ?  

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

3 个回复

倒序浏览
不怎么清楚,但以我的理解,还是这样会比较麻烦。用外部类创建内部类,在内部类中可以调用外面的东西,看上去是可行的,这里说的是成员内部类。但外部类对象必须一直存在吧,不然内部线程类如果调用外面的东西会出问题,而外面对象一直存在就有点浪费内存了,本来只用一个对象的。如果把外面的东西设成静态的,外面对象就不用一直存在,但那样也比较浪费内存,本来做完就可以扔的,还要一直留着。
不知道对不对,另开发的时候就是这么写我就尴尬了

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
草貌路飞 发表于 2013-7-9 15:40
不怎么清楚,但以我的理解,还是这样会比较麻烦。用外部类创建内部类,在内部类中可以调用外面的东西,看上 ...

那要是用接口的方法来实现的话,,  那不一样还是需要有对象的支持吗,,  虽然 接口实现的话 , 是1个类,  内部类加外部类的话 是俩,,  但是 其整体内容是一样的话。  会比之前那个 多占用很多内存吗。?
回复 使用道具 举报
本帖最后由 toShareBeauty 于 2013-7-9 16:04 编辑

大多数情况下,如果只想重写 run() 方法,而不重写其他 Thread 方法,那么应使用 Runnable 接口。这很重要,因为从设计角度来说,除非程序员打算修改或增强类的基本行为,否则不应为该类创建子类。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马