传递对象时println()会发生什么

时间:2019-06-23 12:58:12

标签: java

Circle c = new Circle(colour, radius);
System.out.println(c);

现在考虑一个类Circle,当我们在类println中拥有toString()方法时以及没有一个方法时,Circle语句将做什么。

1 个答案:

答案 0 :(得分:2)

toString()Object类的方法,并且该类是所有类的超类(如果您创建一个不扩展任何其他类的新类,则它将隐式继承自Object请记住,Java不支持多重继承,即,类只能具有一个直接超类。如果您在继承类中重写toString(),则System.out.println()将隐式调用您的实现。如果不重写此方法,还将调用toString()类,但是将使用Object类的默认实现。 Object::toString的默认实现返回:

  

Object类的toString方法返回一个字符串,该字符串包括该对象是其实例的类的名称,符号字符“ @”以及该对象的哈希码的无符号十六进制表示形式。换句话说,此方法返回的字符串等于:   getClass()。getName()+'@'+ Integer.toHexString(hashCode())