大家好,这让我感到困惑......
Arrays
类中的所有toString()方法都是静态的,这是否真的覆盖了Object
的toString()方法?有人告诉我:
不,它不会覆盖Object的toString方法。它包含来自Object的继承的toString,由于无法实例化该类,因此从未使用过。您在Arrays类中看到的是toString的重载版本。
所以我去了source code,但没有看到这样的事情。我错过了什么吗?对不起要问这样一个菜鸟问题。
答案 0 :(得分:7)
Arrays
类是实用程序类。由于它不是可实例化的,因此Object的toString
方法无关紧要。
您看到的静态toString
方法与标准toString
方法完全无关,正如their description in the javadoc所示。还要注意复数形式:这个名称有多个方法,并且没有一个方法与Object的签名相同:它们都有一些参数。
答案 1 :(得分:0)
Object
的{{1}}方法没有参数。 toString()
中的所有toString
方法都有一种或另一种参数,因此它们不会覆盖从Arrays
继承的toString()
方法。它们是与Object
没有关系的独特方法(就编译器而言)。但是,要使用继承的Object.toString()
实例方法,您需要一个toString()
实例来调用继承的方法,并且由于您不能拥有其中一个,因此无关紧要。