class继承Thread 类 可以不重写run()方法吗?

子线程类 extends Thread时是可以不用重写run()方法,但是当你 子线程类对象.start()方法就是调Thread类的run()方法了。而Thread类的run()方法不执行任何操作并返回。 
Thread类本身,已经重写了run方法,如果class继承Thread类时,没有重写run方法,会去执行父类Thread的run方法。只不过是空方法,因为在Thread类中有做判断target!=null.

    /**
     * If this thread was constructed using a separate
     * <code>Runnable</code> run object, then that
     * <code>Runnable</code> object's <code>run</code> method is called;
     * otherwise, this method does nothing and returns.
     * <p>
     * Subclasses of <code>Thread</code> should override this method.
     *
     * @see     #start()
     * @see     #stop()
     * @see     #Thread(ThreadGroup, Runnable, String)
     */
    @Override
    public void run() {
        if (target != null) {
            target.run();
        }
    }

 而class类implements Runnable时则是必须重写run()方法的。

 


版权声明:本文为weixin_38109191原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。