interface A
{
public void printValue();
}
public class Test
{
public static void main (String[] args)
{
A a1 = new A() {
public void printValue()
{
System.out.println("A");
}
};
a1.printValue();
}
}
我们无法创建接口(interface)的实例,但是这段代码中 new A()
做了什么?我见过这种类型的代码主要与比较器一起使用。请解释一下。
最佳答案
new A() {}
是实现接口(interface) A 的匿名类的实例。
如果您需要一个仅在一个地方实现接口(interface)的类的实例,因此您不想定义一个普通的类,那么这是一个非常有用的捷径。这样,您就可以在使用类的同一位置定义该类。
在您的代码示例中,它似乎不是很有用,但通常通过将匿名类实例传递给接受接口(interface)类型参数的某个方法来使用它。
关于java - 接口(interface)概念的澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26606259/