那么多好的答案,我想在此添加更多。这有助于理解Extending v/s Implementing Thread。
Extends非常紧密地绑定两个类文件,并且可能会导致很难处理代码。
两种方法都做同样的工作,但存在一些差异。
最常见的区别是
当您扩展Thread类时,之后您无法扩展您需要的任何其他类。(如您所知,Java不允许继承多个类)。
实现Runnable时,可以为类保存空间,以便将来或现在扩展任何其他类。
但是,实现Runnable和扩展Thread之间的一个显着区别是
by extending Thread, each of your threads has a unique object associated with it, whereas implementing Runnable, many threads can share the same object instance.
以下示例将帮助您更清楚地理解
//Implement Runnable Interface...
class ImplementsRunnable implements Runnable {
private int counter = 0;
public void run() {
counter++;
System.out.println("ImplementsRunnable : Counter : " + counter);
}
}
//Extend Thread class...
class ExtendsThread extends Thread {
pr