//线程类的传递过程
class Thread implements Runnable
{
private Runnable r;
Thread() //无参构造
{
}
Thread(Runnable r) //有参 runnable构造
{
this.r = r;
}
public void run() //如果 Runnable不为空,执行r.run()
{
if(r!=null)
r.run();
}
public void start()//调用run方法
{
run();
}
}
class ThreadDemo extends Thread
{
ThreadDemo()
{
super();
}
public void run()
{
system.out.println("继承Thread的线程");
}
}
main
{
ThreadDemo t = new ThreadDemo();
t.start();
//过程
创建 t 线程对象,通过无参构造,到父类无参构造,再调用父
类start方法,由于ThreadDemo类重写了父类,run方法。所以执行子类
run方法。
}
class RunnableDemo implements Runnable
{
public void run()
{
System.out.println("实现了Runnable的线程");
}
}
main
{
RunnableDemo rd = new RunnableDemo();
Thread t = new Thread(rd);
t.start;
//过程
创建RunnableDemo类实例对象rd,通过有参构造,创建Thread类对
象实例t,把rd传进去。再调用父类start方法,至run方法,条件满足
,调用r.run()方法。因为rd实现了Runnable,所以调用rd的run方法。
}
class Thread implements Runnable
{
private Runnable r;
Thread() //无参构造
{
}
Thread(Runnable r) //有参 runnable构造
{
this.r = r;
}
public void run() //如果 Runnable不为空,执行r.run()
{
if(r!=null)
r.run();
}
public void start()//调用run方法
{
run();
}
}
class ThreadDemo extends Thread
{
ThreadDemo()
{
super();
}
public void run()
{
system.out.println("继承Thread的线程");
}
}
main
{
ThreadDemo t = new ThreadDemo();
t.start();
//过程
创建 t 线程对象,通过无参构造,到父类无参构造,再调用父
类start方法,由于ThreadDemo类重写了父类,run方法。所以执行子类
run方法。
}
class RunnableDemo implements Runnable
{
public void run()
{
System.out.println("实现了Runnable的线程");
}
}
main
{
RunnableDemo rd = new RunnableDemo();
Thread t = new Thread(rd);
t.start;
//过程
创建RunnableDemo类实例对象rd,通过有参构造,创建Thread类对
象实例t,把rd传进去。再调用父类start方法,至run方法,条件满足
,调用r.run()方法。因为rd实现了Runnable,所以调用rd的run方法。
}