Object类中的toString()

public class TestObject {

@Override

public String toString() {

return "在"+getClass().getName()+"类中重写toString()方法";

}


public static void main(String[] args) {

// TODO 自动生成的方法存根

System.out.println(new TestObject());

}

}

在这里没有调用方法怎么会执行?

淡泊如风
浏览 1642回答 3
3回答

紫罗天

这里你调用的不是你TestObject中重写的方法,而是println里面的方法,new TestObject()只是内存中声明一个空间不执行任何操作,new TestObject().toString()才是调用你自己重写的方法

予远方

当使用print 或println 打印的时候,会自动调用String.valueOf()public static String valueOf(Object obj) {      return (obj == null) ? "null" : obj.toString();  }这个方法中,当传入的对象为 null 时返回一个 null,当非 null 时,则返回这个 obj 的 toString()。而在你这个类中重写了toString方法,所以会打印出重写的相关信息。

little_newbee

println自动调用toString方法
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java