发布日期:2018-03-26
“implements Runnable” 与“extends Thread”的比较+ 查看更多
“implements Runnable” 与“extends Thread”的比较
+ 查看更多
发布日期:2018-03-10 14:15
分类:JAVA
浏览次数:212
自从我用Java写线程开始,我就发现两种方式来写线程:
一种是用implements Runnable:
一种是用implements Runnable:
public class MyRunnable implements Runnable { public void run() { //Code } } //Started with a "new Thread(new MyRunnable()).start()" call
另外一种是用extends Thread:
public class MyThread extends Thread { public MyThread() { super("MyThread"); } public void run() { //Code } } //Started with a "new MyThread().start()" call
这两种代码块之间有什么明显的区别吗?
回答:
是的,这两个有区别。在我看来,implements Runnable能够更好地实现这个功能。你不是专攻线程行为的,你只是给他一些东西让他运行。这就意味着哲学上组合是更为纯粹的实现方式。
在实践方面,这就意味着你可以使用Runnable,也可以从其他类继承。