为什么将Thread
类实现为常规类而不是将抽象run()
方法实现为抽象类。
会不会带来任何问题?或以这种方式有什么用吗?
另外,该Thread.start()
方法应该是一种非常特定的方法,其功能不能由任何其他类实现(如果我没记错的话)。因此,我想该final
关键字比其他任何方法都更适合此操作。
但是我可以重写此方法并根据需要使用它,
public class Test extends Thread {
public static void main (String... args) {
Thread test = new Test();
test.start();
}
@Override
public void run() {
System.out.println("New thread started...");
}
@Override
public void start() {
System.out.println("Did anyone tell you I will spawn a new thread??");
}
}
它显然只印了,
有人告诉你我将产生一个新线程吗?
除了使工程师替换您感到困惑之外,还有什么其他用途?
如果不是,为什么在Thread类中未将方法声明为final?