Java:为什么主类不扩展Thread类

时间:2013-08-10 16:13:47

标签: java multithreading

我们的主类中有一个默认的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();

    }
}

3 个答案:

答案 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并将该课程提供给ThreadExecutor以便为您执行。