java中,如果没有toString方法的情况下(并且没有重写方法),直接用print打印对象,输出什么

 我来答
microroom
科技发烧友

2019-08-09 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1577万
展开全部
会调用根类Object的toString方法输出一个字符串,此字符串是这样组成的:
对象所属类的完全限定名@对象的哈希码的16进制表示。
追答
你这种假设本身就不合理,我只能勉为其难做以下分析。
一.
以假如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标准类库又没有重写,则不会再有标准类库了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式