任何人都可以解释以下代码的工作...?任何人都可以解释以下代码的工作...?
interface myInterface{}
public class Main {
public static void main(String[] args) {
System.out.println(new myInterface(){public String toString(){return "myInterfacetoString";}});
System.out.println(new myInterface(){public String myFunction(){return "myInterfacemyFunction";}});
}
}
输出是...
myInterfacetoString
[email protected]
所有答案中说的println是MyInterface的()语句是匿名类。但是,因为我已经将它声明为一个接口,为什么它允许我创建同名匿名类....?
再次...如果这些都是匿名类,则class主要应该让我给任何名义向这些匿名classes..But如果尝试做so..I'm获得编译错误
这是作业,还是好奇?标记作业问题本身被认为是一种很好的形式。 – ojrac 2010-06-05 02:17:58
Siddhi,很好的问题。不过,我建议你不要经常用显着的新内容改变问题。相反,你可以提交一个新的问题并引用这个问题。 – akf 2010-06-05 02:53:37
这使得一个匿名类的实例实现一个空的接口。一个覆盖toString(),所以System.out.println会自动使用它。另一个有myFunction,它没有被调用,所以它使用Object的toString(),它提供了一些信息,包括对象的地址。 – mk12 2010-06-05 03:12:37