A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄诗宾 高级黑马   /  2013-2-27 20:57  /  1527 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄诗宾 于 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的方法呢。

3 个回复

倒序浏览
你这个toString方法不是复写
真正的toString()方法是无参数的
toString(Student s)是上面这个方法的重载形式
所以没有效果
回复 使用道具 举报
直接return s;是不行的,因为Student不能转换成String,必须借助于toString转换成String。
因为是把Object转换成String,所以调用Object的方法
回复 使用道具 举报
1、tostring()方法的返回值是String类型    Student是一个对象  所以返回 s 不可以   类型不匹配
2、重写toString()   就是重写的object中的toString  所以调用的object
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马