java中,如果没有toString方法的情况下(并且没有重写方法),直接用print打印对象,输出什么
1个回答
追答
你这种假设本身就不合理,我只能勉为其难做以下分析。
一.
以假如Object类没有toString方法为前提,又可分两种情况:
1.java标准类库重写了
则不会报错,因为自然也重写了print(Object)方法。
2.java标准类库没有重写
那就压根就不会有标准类库了,你也问不着系统会不会报错了。
二.
把假设变一下,假设你定义了多个具有继承关系的类,你的根类MyObject有一个方法叫myToString方法,你定义的打印系统有一个方法叫print(MyObject o),它在内部会调用MyObject类的myToString方法,而你在你代码的某处调用了print(MyObject o)方法。现在,如果你修改了MyObject类,删除了myToString的定义,而调用print(MyObject o)方法的代码不变,再编译时系统自然会报错,会抱怨你调用了一个未定义的方法。从以上分析也能明白,为什么假设Object类没有toString方法,而java标准类库又没有重写,则不会再有标准类库了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询