为什么 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?