关于线程的困惑
我们可以创建一个接口的引用,但不能创建对象。 但是我们如何将新的Runnable()传递给Thread构造函数。 根据我的知识是Concert,新的Class_Name()是对象。
Thread t = new Thread(new Runnable(){});
这里使用的技巧称为匿名类 。 基本上,您正在创建一个实现Runnable
的新匿名类的对象。
更好的例子是:
Thread t = new Thread(new Runnable(){ @Override public void run() { // Code here } });
我们可以创建一个接口的引用,但不能创建对象
这不是真的。
ClassA classa = new ClassA();
这将为ClassA创建一个新实例,而classa
是引用。
但是我们如何将新的Runnable()传递给Thread构造函数
Thread t = new Thread(new Runnable(){});
这将创建一个Thread的实例,其中t
是引用。 新的Runnable(){}被称为匿名类 。 因为创建了一个实例,所以引用会传递给构造函数,但是稍后您不能在代码中引用它。
但是使用这一行你应该得到一个编译错误。 您必须覆盖run方法。
Thread t = new Thread(new Runnable(){ @Override public void run(){ } });