大家好,这让我感到困惑......
类中的所有toString()方法Arrays
都是静态的,那么这真的会覆盖Object
的 toString() 方法吗?有人告诉我:
不,它不会覆盖 Object 的 toString 方法。它包含从 Object 继承的 toString,由于无法实例化该类,因此从未使用过。您在 Arrays 类中看到的是 toString 的重载版本。
所以我去了源代码,但没有看到这样的东西。我错过了什么吗?很抱歉问了这样一个菜鸟问题。
大家好,这让我感到困惑......
类中的所有toString()方法Arrays
都是静态的,那么这真的会覆盖Object
的 toString() 方法吗?有人告诉我:
不,它不会覆盖 Object 的 toString 方法。它包含从 Object 继承的 toString,由于无法实例化该类,因此从未使用过。您在 Arrays 类中看到的是 toString 的重载版本。
所以我去了源代码,但没有看到这样的东西。我错过了什么吗?很抱歉问了这样一个菜鸟问题。
该类Arrays
是一个实用程序类。由于它不可实例化,因此 Object 的toString
方法是无关紧要的。
您看到的静态toString
方法与标准方法完全无关,从javadoc 中的描述中toString
应该可以清楚地看出这一点。还要注意复数形式:有多个具有此名称的方法,并且没有一个具有与 Object 相同的签名:它们都带有一些参数。
Object
的toString()
方法没有参数。中的所有toString
方法Arrays
都有一种或另一种参数,因此它们不会覆盖toString()
从Object
. 它们是不同的方法,与Object.toString()
. 但是,要使用继承的toString()
实例方法,您将需要一个实例Arrays
来调用继承的方法,并且由于您不能拥有其中之一,因此没有任何后果。