黑马程序员技术交流社区

标题: 关于toString的问题。 [打印本页]

作者: 黄诗宾    时间: 2013-2-27 20:57
标题: 关于toString的问题。
本帖最后由 黄诗宾 于 2013-2-28 15:50 编辑

public class Test{
public static void main(String args[]){
  Student s=new Student();
  System.out.println(s);
   }
}
class Student{
public String toString(Student s){
return s.toString();
}
}

为什么覆写的toString中直接return s;不行?
还有,既然是覆写,那么s.toString()应该是调用覆写的toString方法,为什么效果是调用的Object的方法呢。
作者: 李挺    时间: 2013-2-27 20:59
你这个toString方法不是复写
真正的toString()方法是无参数的
toString(Student s)是上面这个方法的重载形式
所以没有效果
作者: Benwolf0818    时间: 2013-2-27 22:01
直接return s;是不行的,因为Student不能转换成String,必须借助于toString转换成String。
因为是把Object转换成String,所以调用Object的方法
作者: 颜春    时间: 2013-2-27 22:26
1、tostring()方法的返回值是String类型    Student是一个对象  所以返回 s 不可以   类型不匹配
2、重写toString()   就是重写的object中的toString  所以调用的object




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2