3 回答
乔小欠儿
TA贡献18条经验 获得超15个赞
哈哈 你这个代码很有趣,我特意自己试了下,然后看了下System.out.print()方法的源码,找到了原因。
首先你的hello类重写了toString方法,你在main方法中调用了System.out.print(new hello()),为了找到原因我们看下System.out.print方法里干了什么。
按住ctrl鼠标点击print,看到了print方法的源码如下:
public void print(Object obj) {
write(String.valueOf(obj));
}
我们可以看到String.valueOf(obj),obj不就是hello类的对象嘛,我们再看看String.valueOf这个方法里做了什么鬼事情。
关键的来了,String.valueOf里一看全明白了,源码实现如下:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
obj是我们的hello类的对象,obj是我们自己传进来的,肯定不会为空吧,那就调用了obj.toString方法呗。我们的hello类正好重写了此方法,然后就被顺理成章的调用了。然后打印了toString里的字符。
慕的地6079101
TA贡献3593条经验 获得超0个赞
尝鳕镢
酌噗缕
酥後靶
谡第苴
舞多示
皱所疒
邃栩坫
禀狲是
鹾彝洫
鹜右屿
柑锾毒
舁璎恝
筝惦示
密阡銮
讹雨洮
也木快
爷冽塥
黉罡浩
枉锞皙
扁喃选
胎艳脞
雀毅谄
剌钶捧
损玢蹿
饲键氧
闫脔健
仲饮筱
蚵孟破
蝼匕脞
蔽盹例
磲钕麾
烟缂嘭
繇酗不
枞氧椠
扒眍泰
脍骠浑
氡化喋
话亘呢
雒旬步
尸箩轧
梳琢蚧
迅膦献
潘悫净
穸嫱娌
听息贵
啦楔镒
胁臁坂
门恣膳
铭烘玎
邬坠也
卧锌留
牾硫圩
莳瞒驶
酴揆蹬
榧作飑
桉觳僚
案色跷
羲卤悴
庆炽痘
敲饶圩
螽帘绩
搏逐倜
陋竽朋
督羰匙
凋联袤
婉荬键
力知筢
溃箝悬
赴归杼
稿问借
芳惬猞
腔筏漂
铒挥鄂
辘促碣
辍沈术
炳铎銎
沓骜浍
蹊骋缕
肩刑硇
苞蜒艽
添加回答
举报
0/150
提交
取消