Java:为什么主类不扩展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();
    }
}

您有点困惑。所有代码都在某个线程中运行,但是定义此代码的类不需要扩展thread。如果不是这样,所有类都必须扩展Thread,否则就不能调用它们的任何方法。

看看下面的类比:

public class Test {
    public static void main(String[] args) {
         System.err.println("foo");
    }
}

现在问问自己,为什么Test不扩展System,却使用System中的字段和方法。如果你知道这一点,那么你也可以回答你最初的问题。

无论是life还是java,使用一个东西都不需要属于同一个层次。

我永远不会有一个类扩展Thread。没有要添加的新行为。

最好实现Runnable,并将该类交给ThreadExecutor来为您执行。

最新更新