通过查阅api文档,
run()的定义:
public void run()
而
sleep()的定义:
static void sleep()1.请问为什么非静态的run方法能调用静态的sleep方法?感谢你的回复!****************************************************************class MyThread extends Thread{ @Override
public void run() {
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}2.如上,当自己的定义的线程类重写run()方法,归根到底是重写 Runnable接口中的run()方法 还是 Thread类中的 run()方法,虽然Thread类也是实现了Runnable接口,但我想知道归根到底是不是重写 Runnable接口中的run()方法?我想听听你们的声音来确定一下!感谢你们的回复。
run()的定义:
public void run()
而
sleep()的定义:
static void sleep()1.请问为什么非静态的run方法能调用静态的sleep方法?感谢你的回复!****************************************************************class MyThread extends Thread{ @Override
public void run() {
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}2.如上,当自己的定义的线程类重写run()方法,归根到底是重写 Runnable接口中的run()方法 还是 Thread类中的 run()方法,虽然Thread类也是实现了Runnable接口,但我想知道归根到底是不是重写 Runnable接口中的run()方法?我想听听你们的声音来确定一下!感谢你们的回复。
参见构造函数Thread(Runnable target)和run()方法
public void run() {
if (target != null) {
target.run();
}
}
第二个问题,不管是不是在线程里面,既然继承了父类,又对里面的方法重新定义,那当然是重写了父类里面的方法。至于你问“归根到底是不是重写 Runnable接口中的run()方法”,有意义吗?他们就是一条链,
接口中的方法run()
|
|
子类A中run()
|
|
子类B中run()
你百度下“多态”这个定义查下。
public void run(){
////////
}
}
都重写了
如果用new MyThread().start()就是Thread
用new Thread(new MyThread()).start()就是RunnableThread本身就实现Runnable个人理解