首页 > 编程知识 正文

java中什么是构造函数,java怎么出现override

时间:2023-05-05 11:14:34 阅读:136489 作者:1739

我建议你先看看jjdqd的源代码

之所以简单地调用toString (方法,是因为编译器调用了out.print )方法,而不是缺省编译器

仔细看源代码,在PringStream类中,print方法写为

公共void print (objectobj ) {

write(string.valueof(obj ) );

}

此时,调用了String的静态方法valueof

这个方法是这样的

publicstaticstringvalueof (objectobj ) {

return(obj==null )? ' null' : obj.toString (; //请注意。 这里调用了toString方法

}

所有java对象都是从Object派生的,如果方法未被重写

将调用super.toString ()

在Object中,这个方法是这样定义的

公共字符串

return getClass ().getName () ' @'integer.tohexstring ) hashcode ) );

}

因此,打印结果为classname @hashcode

重写toString方法后,根据java的动态绑定原理,调用当前对象的toString () )方法,因此奋斗的树叶在重写student的toString方法后

学号:1

姓名:dpdbb

补充一点:

作为比较,调用print(strings )时,虽然是同一对象,但不会调用toString )方法,打印结果也不再是java.lang.String@hashcode

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。