Arrays.toString()是否覆盖了Object的toString()方法?

时间:2013-08-25 18:08:55

标签: java override tostring

大家好,这让我感到困惑......

Arrays类中的所有toString()方法都是静态的,这是否真的覆盖了Object的toString()方法?有人告诉我:

  

不,它不会覆盖Object的toString方法。它包含来自Object的继承的toString,由于无法实例化该类,因此从未使用过。您在Arrays类中看到的是toString的重载版本。

所以我去了source code,但没有看到这样的事情。我错过了什么吗?对不起要问这样一个菜鸟问题。

2 个答案:

答案 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()实例来调用继承的方法,并且由于您不能拥有其中一个,因此无关紧要。