在以下程序的main方法中,一个实现接口的匿名类
TestInt实例化并打印。
在打印任何对象时,将调用其类的toString方法。但是Foo类也扩展了Object,它具有一个公共String toString()方法,而testInt接口也是如此。那么我们在main中重写了哪些功能?来自对象的一个还是来自TestInt的一个?
interface TestInt{ String toString(); }
public class Foo {
public static void main(String[] args) {
System.out.println(new TestInt() {
public String toString() { return "foo"; }
});
}
}
上面的程序编译并运行良好,并生成“ foo”作为输出。
最佳答案
您要覆盖Object#toString()
并实现TestInt#toString()
。但这是一个很挑剔的区别。由于这些方法具有相同的签名,因此对于所有实际目的而言,它们都是相同的。