class SuperBaseB{
public String toString(){
return "SuperBaser";
}
}
class baseb extends SuperBaseB{
public String toString(){
super.toString();
return "superBaser+baseb";
}
}
public class test{
public static void main(String args[]){
baseb abc=new baseb();
System.out.pintln(abc.toString());
}
}
这里super.toString 怎么执行的 相当于 return "SuperBaser";吗 那为什么不返回SuperBaser啊 后面的return "superBaser+baseb";就不执行了啊
public String toString(){
return "SuperBaser";
}
}
class baseb extends SuperBaseB{
public String toString(){
super.toString();
return "superBaser+baseb";
}
}
public class test{
public static void main(String args[]){
baseb abc=new baseb();
System.out.pintln(abc.toString());
}
}
这里super.toString 怎么执行的 相当于 return "SuperBaser";吗 那为什么不返回SuperBaser啊 后面的return "superBaser+baseb";就不执行了啊
super.toString();
这条语句调用了父类的toString方法,但丢弃了其返回值。
String s = super.toString();
这只是接收了这个返回值,如果想返回这个值,那么就接着:
return s;或者干粹直接来:
return super.toString();
很显然return就要结束程序了
"
public String toString(){
super.toString();
return "superBaser+baseb";
"
notice super.toString(); did nothing, it just only invoked super's toString() method to return a string but nobody references it and GC will recycle it. there's no sense here.in class baseb, it override the toString() method via return a stable string: "superBaser+baseb" simply. whatever you do in test class, base.toString() will return "superBaser+baseb".
class baseb extends SuperBaseB{
public String toString(){
super.toString();
return "superBaser+baseb";
}
的执行和
class baseb extends SuperBaseB{
public String toString(){
"SuperBaser"; //这里等同于super.toString();,
//super.toString();函数在这里就是它返回的结果而以,
//没有包括retuen语句。
return "superBaser+baseb";
}
也就是说super.toString();就是一个字符串,要想返回SuperBaser,就还得
在"SuperBaser";前面加上return,
即: return "SuperBaser";
亦即: return super.toString();
没用引用的