一、 下面代码能否通过编译?如果不能,错误发生在第几行?
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 。