黑马程序员技术交流社区
标题:
一个线程这样写会怎么样??
[打印本页]
作者:
jiangweibin2573
时间:
2014-8-13 18:04
标题:
一个线程这样写会怎么样??
本帖最后由 jiangweibin2573 于 2014-8-13 18:11 编辑
这么写错了吗,为什么呢!对?又为啥呢?
public class RunnableDemo extends Thread implements Runnable {
@Override
public void run() {
System.out.println("this is run");
}
public static void main(String[] args) {
Thread t = new Thread(new RunnableDemo());
t.start();
}
}
复制代码
作者:
杨庆雷
时间:
2014-8-13 18:13
这没啥不正常啊
作者:
jiangweibin2573
时间:
2014-8-13 18:19
一个类既继承了Thread类,就可以创建线程了。如果只实现了runnable也可当参数传给线程构造函数,来创建线程,但这里既继承了,也实现了!
作者:
jiangweibin2573
时间:
2014-8-13 18:21
杨庆雷 发表于 2014-8-13 18:13
这没啥不正常啊
逻辑分析下运行过程,怎么个可以!或者来点理论依据额
作者:
杨庆雷
时间:
2014-8-13 18:31
把RunnableDemo 的对象当做参数传给Thread的构造函数,说明新建的Thread运行的时候 ,运行RunnableDemo 里的run方法
作者:
dftgg
时间:
2014-8-13 18:34
应该是覆写了Runnable借口的run方法把
作者:
❤如止水之絕境
时间:
2014-8-13 20:13
没错,RunnableDemo 这个类既继承自thread,也实现了runnable接口,也就是说他即是thread的子类,也是runnable的实现。最后调用的时候,是新开一个线程,传入runnable对象,RunnaleDemo是runnable的实现,所以是没错的。尽管这样有些多余,因为线珵中传入runnable对象,只是调用了其中的run()方法,没有必要继承自线程的,或者直接重写线程的run()方法,然后用RunnableDemo 的实例对象,也行。
作者:
裤裆里的温柔、
时间:
2014-8-13 20:25
知者不博,博者不知,没人这样写吧
作者:
小糊涂神
时间:
2014-8-13 20:40
来学习下。
作者:
Moriarty
时间:
2014-8-13 20:42
这个可以,会打印一次this is run
作者:
姜佳文
时间:
2014-8-13 20:58
这个。。。不能即继承又实现吧,根据你的写法,只实现就行
作者:
paozhuanyinyu
时间:
2014-8-13 21:09
运行是正常的,非一般的思路。
作者:
rolling-stone
时间:
2014-8-13 22:11
今天下午刚刚考了,你就上来问,Runnable接口其实就是从Thread类里面抽象出来的,这就像你既throws IOException,又写了try,catch一样。虽然有重复,但是可以同时使用.
作者:
hejinzhong
时间:
2014-8-16 20:54
Thread类的构造方法被重载了八次,构造方法如下:
public Thread( );
public Thread(Runnable target);
public Thread(String name);
public Thread(Runnable target, String name);
public Thread(ThreadGroup group, Runnable target);
public Thread(ThreadGroup group, String name);
public Thread(ThreadGroup group, Runnable target, String name);
public Thread(ThreadGroup group, Runnable target, String name, long stackSize);
复制代码
Runnable target
实现了Runnable接口的类的实例。要注意的是Thread类也实现了Runnable接口,因此,从Thread类继承的类的实例也可以作为target传入这个构造方法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2