Java并发编程面试题1

package com.mozq.thread.producer2;
/*
 * 面试题2:以下代码是否存在错误
class ThreadTest implements Runnable{
    public void run(Thread t){}
}
结果:实现Runnable接口,但是没有覆盖接口中的run方法,应该被定义为抽象类。public void run(Thread t)和void run()方法不是同一个方法。
 */
public class ThreadMianShi {
    public static void main(String[] args) {
        //面试题1:调用哪里的run方法,Runnable的还是Thread的run
        //优先执行子类的run方法,而不是target中的run方法。
        /*
        @Override
        public void run() {
            if (target != null) {
                target.run();
            }
        }//子类覆盖了Thread类run的默认实现,不会调用target.run()方法
         */
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("runnable...");
            }
        }) {
            @Override
            public void run() {
                System.out.println("Thread...");
            }
        }.start();
    }
}

猜你喜欢

转载自www.cnblogs.com/mozq/p/10411709.html