java里面的 toString()方法重写是怎么回事啊?
publicStringtoString(){return"wotou"+id;}这个方法重写有什么作用啊?我试了将toString();改成别的名就提示错误为什么啊?方...
public String toString(){
return "wotou"+id;
}
这个方法重写有什么作用啊? 我试了将toString();改成别的名就提示错误为什么啊? 方法都重写了名字为什么不能改啊?里面不是return了么? 展开
return "wotou"+id;
}
这个方法重写有什么作用啊? 我试了将toString();改成别的名就提示错误为什么啊? 方法都重写了名字为什么不能改啊?里面不是return了么? 展开
5个回答
2015-10-14 · 知道合伙人互联网行家
关注
展开全部
string是一个对象,但也可以用基本类型创建的方式来创建,例如:
String s="abababababa";// 基本类型创建的方式
String s= new String("asdsad");//对象
java里,所有的类,不管是java库里面的类,或者是你自己创建的类,全部是从object这个类继承的。object里有一个方法就是toString(),那么其实所有的类创造的时候,都有一个toString的方法。java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。例如:
class Acccc
{}
Acccc s1 = new Acccc();
System.out.print(s1);
按照print接受的类型来说,s1是不能直接输出的,那么是否代表这个是不能编译运行的呢?当然不是。因为当print检测到输出的是一个对象而不是字符或者数字时,那么它会去调用这个对象类里面的toString 方法。
即使你没有创建,因为是所有的类都是集成object类,所以自然也继承了这个方法。所以默认情况下,你输出一个对象,会调用这个对象继承的toString方法,而object里的这个方法,默认的功能是返回这个对象的名称。
class A
{
String toString()
return “cao”;
}
class B
{
public static void main(String [] args)
{
A x1 = new A();
System.out.println(x1);//输出就是"cao"……
}
}
String s="abababababa";// 基本类型创建的方式
String s= new String("asdsad");//对象
java里,所有的类,不管是java库里面的类,或者是你自己创建的类,全部是从object这个类继承的。object里有一个方法就是toString(),那么其实所有的类创造的时候,都有一个toString的方法。java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。例如:
class Acccc
{}
Acccc s1 = new Acccc();
System.out.print(s1);
按照print接受的类型来说,s1是不能直接输出的,那么是否代表这个是不能编译运行的呢?当然不是。因为当print检测到输出的是一个对象而不是字符或者数字时,那么它会去调用这个对象类里面的toString 方法。
即使你没有创建,因为是所有的类都是集成object类,所以自然也继承了这个方法。所以默认情况下,你输出一个对象,会调用这个对象继承的toString方法,而object里的这个方法,默认的功能是返回这个对象的名称。
class A
{
String toString()
return “cao”;
}
class B
{
public static void main(String [] args)
{
A x1 = new A();
System.out.println(x1);//输出就是"cao"……
}
}
展开全部
每个方法在函数表里都有唯一的映射关系的,你把方法名字改了,映射值就不对了,也就是这个方法不存在了。
另外,你要明白的一点是,重写是指重写方法的内容,而不是方法本身。这在任何一个语言里面都是通用的。
另外,你要明白的一点是,重写是指重写方法的内容,而不是方法本身。这在任何一个语言里面都是通用的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-05-30
展开全部
改成别的名字不会出错,是不是你在方法前写了@Override?
施小平朋友,你觉得toString()有可能找不到么?
施小平朋友,你觉得toString()有可能找不到么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
重写是指从父类继承后,子类对父类某方法的具体实现进行修改,不能修改其方法名
当System.out.println(对象)时,默认使用toString()方法,将对象转为字符串输出
toString()方法继承于所有类的隐性基类(所有类的大哥大 Object类)
如果某类无重写toString()方法,这时调用toString()将得到(类名+地址名名)这样的字符串
改成别的方法名应该是不会出错的,是否你添加了重写标记
改成别的方法名是不能称为“重写”的
当System.out.println(对象)时,默认使用toString()方法,将对象转为字符串输出
toString()方法继承于所有类的隐性基类(所有类的大哥大 Object类)
如果某类无重写toString()方法,这时调用toString()将得到(类名+地址名名)这样的字符串
改成别的方法名应该是不会出错的,是否你添加了重写标记
改成别的方法名是不能称为“重写”的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果类A里有toString()函数。
A temp=new A();
那么在调用System.out.println(temp)就等于调用System.out.println(temp.toString()).
如果找不到toString()函数,就会报错。
A temp=new A();
那么在调用System.out.println(temp)就等于调用System.out.println(temp.toString()).
如果找不到toString()函数,就会报错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询