为什么 Thread 不是抽象类,而 start() 不是 final?
为什么该类是作为常规类实现的,而不是作为抽象方法的抽象类实现的。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?