[英]Java Subclass uses super.tostring() but not superclass' method in it. Why?
[英]Java - Super.toString() method in base class?
我的问题是在 base class 中编写 Super.toString() 的原因是什么,它返回什么以及为什么?
这是我的代码:
class Person {
public String toString() {
return super.toString() /*+ "->" + "Person" + name + "------"*/;
}
}
应该返回什么? 感谢我在 java 的初学者
你的 class Person 应该扩展父 class 在你定义方法 toString() 的地方,否则你的父 class 是 class Object 并且这个 class 的本地方法将被使用:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
所以,你会得到一个由class的名字组成的字符串,其中object是一个实例,at符号@,object的代码hash的无符号十六进制表示建议所有类(883981182的子类Object195182 ) 覆盖此方法。
super
关键字用于在 inheritance 的情况下调用父 class 方法。
每个 class 都是Object
class 在 java 中的孩子,它的非最终方法之一是toString()
。
所以super.toString()
调用Object
class 方法toString()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.