public class TestObject { @Override public String toString() { return "在"+getClass().getName()+"类中重写toString()方法"; } public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.println(new TestObject()); }}在这里没有调用方法怎么会执行?
3 回答
已采纳
紫罗天
TA贡献12条经验 获得超4个赞
这里你调用的不是你TestObject中重写的方法,而是println里面的方法,new TestObject()只是内存中声明一个空间不执行任何操作,new TestObject().toString()才是调用你自己重写的方法
予远方
TA贡献17条经验 获得超12个赞
当使用print 或println 打印的时候,会自动调用String.valueOf()
public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); }
这个方法中,当传入的对象为 null 时返回一个 null,当非 null 时,则返回这个 obj 的 toString()。
而在你这个类中重写了toString方法,所以会打印出重写的相关信息。
添加回答
举报
0/150
提交
取消