多线程—— (8) 小面试题

一、  下面代码能否通过编译?如果不能,错误发生在第几行? 

class Test implements Runnable{

    public void run(Thread  t){

   }

}

 不能通过编译。错误发生在第一行,因为run方法中加了参数成为了子类特有的方法,并没有覆写接口的的run 方法,所以 Test 类还是一个抽象类,必须被abstract修饰。

二、下列代码将输出哪一行结果?

class ThreadTest
{

   public static void main(String [] args)
   {
          new Thread(new Runnable()



           public void run()
             {

            System.out.println("runnable run");
              }
            )   

       public void run()
       {
     System.out.println( "subThread run");
       }
       
   }.start();

}

答: 首先会输出 subThread run 。运行子类方法,子类会覆盖接口run 方法。

   如果除去子类 subThread run 方法。会运行 本类方法输出runnable run 。

猜你喜欢

转载自blog.csdn.net/zhanshixiang/article/details/81745382
今日推荐