为什么一个线程类实现了Runnable 接口之后,就不可以将其实例化给一个Thread对象呢?
例如:class TestThread extends Thread{}
Thread tt = new TestThread();//这样是可以的class TestThread implements Runnable{}
Thread tt = new TestThread();//这样就不可以了?
例如:class TestThread extends Thread{}
Thread tt = new TestThread();//这样是可以的class TestThread implements Runnable{}
Thread tt = new TestThread();//这样就不可以了?
在代码中我实现了(没写出来),这不是问题所在把;
class A implements Runnable{
}
用的时候就需要先创建A的应用,然后在用thread创建应用:
A a = new A();
Thread b = new Thread(a);
然后用b.start();就可以用线程了
我只是写出我知道的,可能会有不得当处,望高手指正,谢谢!
好像楼上说的还不是问题所在呢;
Thread tt = new TestThread();
TestThread和Thread 没有继承关系
Thread tt = new TestThread();
TestThread和Thread 没有继承关系
TestThread tt = new TestThread();
new Thread(tt).start();
TestThread tt = new TestThread();
new Thread(tt).start();
class TestThread extends Thread{}
Thread tt = new TestThread();//这样是可以的
========================
正好符合 形式 2------------------------------------------------------
class TestThread implements Runnable{}
Thread tt = new TestThread();//这样就不可以了? =====================已经创建线程了,那么他的对象的实例化应该是:class TestThread implements Runnable{}
TestThread tt = new TestThread();//这样就不可以了?
class TestThread implements Runnable{
public void run() { }
} 如果是实现了Runnable接口的话是这样new一个线程的: Thead thread = new Thread(new TestThread());
也就是说TestThread的一个对象是Thread类的一个参数,Thread(new TestThread())是Thread类重载的一个构造方法,
它的参数类型便是实现了Runnable接口的一个类对象, 启动这个线程用thread.start(),所以说还是调用的Thread类的start()方法,实现了Runnable接口的类没有start()方法,只有run方法,明白了吧?