我很困惑为什么实现Runnable接口的线程子类不强制我重写run方法。基本上,当我创建一个简单的实现Runnable接口的类时,它会强制我重写run方法。但是当我将普通类作为线程子类时,它不再强制我重写该类。这背后的逻辑是什么?
我很困惑为什么实现Runnable接口的线程子类不强制我重写run方法。基本上,当我创建一个简单的实现Runnable接口的类时,它会强制我重写run方法。但是当我将普通类作为线程子类时,它不再强制我重写该类。这背后的逻辑是什么?
java.lang.Thread
有它自己的 public void run()
方法,它被子类继承,因此实现 Runnable
接口的 Thread 子类不需要添加自己的重写以满足编译器(尽管它可能会添加以实际有用)。@Override
public void run() {
if (target != null) {
target.run();
}
}
默认情况下,它什么也不做。如果我们扩展一个线程,我们实现这个方法以便它能做一些有用的事情。
Object
,则使用返回String
的方法实现是有效的)。 - Ian Roberts