我是 Java 新手。anonymous class instance
我很难理解和之间的关系interface
。请参阅本网站中的示例:
// anonymous instance as a variable
Runnable r = new Runnable()
{
@Override
public void run()
{
//codes
}
};
Thread t1 = new Thread(r, "anonymous 1");
// anonymous instance as a parameter
Thread t2 = new Thread (new Runnable()
{
@Override
public void run()
{
//codes
}
}, "anonymous 2");
根据这个 SO 问题(http://stackoverflow.com/questions/11069056/why-java-interface-can-be-instantiated-in-these-codes)中的答案,我对匿名类有了基本的了解。
但是,我不明白这是什么:
Runnable r = new Runnable(){...};
在右边,我们创建了一个匿名类的实例,所以它是一个object of a class
. 在左侧,它是一个Interface
变量。
为什么可以将匿名类的实例分配给接口变量?
参考这个网站:
Thread(Runnable target, String name)
似乎 Thread 期望第一个参数是一个接口变量。