gpt4 book ai didi

Java重写疑问

转载 作者:行者123 更新时间:2023-12-01 07:14:47 25 4
gpt4 key购买 nike

在以下程序的 main 方法中,有一个实现该接口(interface)的匿名类TestInt 被实例化并打印。

打印任何对象时,都会调用其类的 toString 方法。但是 Foo 类也扩展了 Object,它有一个公共(public) String toString() 方法,testInt 接口(interface)也是如此。那么我们要在 main 中重写哪个函数呢?来自 Object 的还是来自 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()。但这是一个非常挑剔的区别。由于这些方法具有相同的签名,因此它们在所有实际用途上都是相同的。

关于Java重写疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5542349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com