我们的主类中有一个默认的Thread但是为什么我们在主类中不扩展Thread类。是以某种方式包含Thread类的原因。
这就是我的意思,这是主要的课程:
public class Test{
public static void main(String[] args) {
Thread.currentThread().getName();
}
}
我们使用默认的Thread,但为什么在开始时我们没有扩展Thread类 像这样?
public class Test extends Thread {
public static void main(String[] args) {
Thread.currentThread().getName();
}
}
答案 0 :(得分:4)
你有点困惑。所有代码都在某个线程中运行,但定义此代码的类不需要扩展Thread。如果不是这样,所有类都必须扩展Thread,否则你无法调用他们的任何方法。
看下面的比喻:
public class Test {
public static void main(String[] args) {
System.err.println("foo");
}
}
现在问问自己为什么Test不扩展System,但它使用了System中的字段和方法。如果您知道这一点,那么您也可以回答原始问题。
答案 1 :(得分:2)
无论是生命还是java,使用你不需要属于同一层次结构的东西。
答案 2 :(得分:1)
我永远不会有类扩展Thread
。没有你要添加的新行为。
最好实施Runnable
并将该课程提供给Thread
或Executor
以便为您执行。