为什么我们可以将字符串分配给简单的Java对象

时间:2016-05-03 14:36:45

标签: java

我想知道为什么这是合法的:

Object mystring = "hello";
System.out.println(mystring);

这会打印hello。但为什么Object被视为字符串?

2 个答案:

答案 0 :(得分:5)

因为String IS-A Object,所以引用类型可以是任何超类型。

例如,您也可以将mystring分配给CharSequence类型。

println的{​​{1}}方法(您的PrintStream静态字段)有一个重载,可以将System.out作为参数,并正确打印。

在这种情况下,String中的代码实际上会打印PrintStream#println(Object),其中String.valueOf(x)是您的给定参数。

答案 1 :(得分:3)

它称之为toString()方法。在String类中实现的那个。方法在运行时绑定。