我们可以创建Runnable的对象作为它的接口

时间:2015-09-27 07:03:32

标签: java

我看到一个示例代码,其中使用了新的Runnable(),它是匿名内部类。

Runnable runnable = new Runnable() {
public void run() {
int option = (int) (Math.random() * 4);
switch (option) {
case 0: x.a(); break;
case 1: x.b(); break;
case 2: y.a(); break;
case 3: y.b(); break;
}
}
};

感谢任何帮助。我是新手。

2 个答案:

答案 0 :(得分:5)

是。我们可以。那被称为匿名内部阶级。不仅Runnable,而且您可以匿名为任何界面创建。

建议阅读本文

https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html

答案 1 :(得分:2)

我想在这里添加一些内容以使事情更加清晰 我们永远无法在java中实例化接口。但是,我们可以参考通过接口类型实现接口的对象。

在你共享的代码中,我们创建了一个实现该接口的匿名类。我们正在创建一个匿名类型的对象,而不是接口Runnable。

public class RunnableImpl implements Runnable{
 ...
}

public static void main(String[] args)
{
    Runnable runnable = new RunnableImpl();
    //Runnable test = new Runnable(); // wont compile
}

另见