黑马程序员技术交流社区
标题:
为什么要将子类对象 传给Thread类的构造函数啊?
[打印本页]
作者:
于大脑袋
时间:
2015-3-7 23:19
标题:
为什么要将子类对象 传给Thread类的构造函数啊?
[color=rgba(0, 0, 0, 0.701961)]
实现了Runnable接口的子类对象作为Thread类的构造函数的实际参数传入后完成线程对象和t之间的关联
[color=rgba(0, 0, 0, 0.701961)]
为什么要将子类对象 传给Thread类的构造函数啊?
作者:
wf111sxwf
时间:
2015-3-7 23:48
实现Runnable接口得类就是要将一部分代码当成线程的任务进行封装 , 其实这么做的 目的 就是解耦 不知道你能不能理解, 让程序保持高内聚 低耦合 减少其他程序对我们程序的影响,这是我们编程中十分重要的概念,你的类其实用不到Thread 类中的所有属性 和方法 所以继承Thread 类,会让你的类增加很多没有必要的引用 也使你的程序的独立性变得很差, 而对外暴露接口 就可以降低 程序之间的耦合性 ,
你可以看看 Thread的源码 他的run方法中写的是 run(){
r.run()}这个r就是 参数中 传入的 Runnable的实现类 如果 你不从 构造参数中传入的话 那么 你准备如何去接收这个封装了线程任务的类的对象呢?
作者:
z47057554
时间:
2015-3-8 02:39
Runnable是个接口,时说明它里面是不可能实现具体的方法的,否则就是抽象类了,从它的子类看,它的内部只有一个抽象run方法,这也就意味着它不能调用底层系统资源创建线程,真正具有创建线程功能的还是Thread类。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2