public class Chapter6_5{
public static void main(String[] args) {
Person p = new Person("萌萌",160);
System.out.println(p.toString());
}
}
class Person{
String name;
double height;
Person(){}
Person(String n,double h){
name = n;height = h;
}
public void showName(){
System.out.println("名字:"+name);
}
public void showHeight(){
System.out.println("身高:"+height);
} //栈溢出异常(StackOverflowError)
public String toString(){
return toString();
}
}可编译程序,但是运行的时候,耗内存出现
Exception in thread "main" java.lang.StackOverflowError
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
at Person.toString(Chapter6_5.java:26)
后面还有,上百行

解决方案 »

  1.   

    public String toString(){
    return toString();
    }
    }
    死循环了
      

  2.   


    正确写法 @Override
    public String toString() {
    // TODO Auto-generated method stub
    return super.toString();
    }
      

  3.   

    怎么解决啊,不是return toString();,那应该是什么,
      

  4.   

    这里不是继承。那么就应该是return this.toString();
      

  5.   

    //栈溢出异常(StackOverflowError)
    public String toString(){
    return super.toString();
    ---------- java运行 ----------
    Person@757aef输出完成 (耗时 0 秒) - 正常终止
      

  6.   

    课本的题目,还没有学到你说的东西,没有继承,递归,只学到声明类,定义结构,成员的知识,,那么应该return什么
      

  7.   

    为什么前面两个方法不打印内容
    //栈溢出异常(StackOverflowError)
    public String toString(){
    return super.toString();
    ---------- java运行 ----------
    Person@757aef输出完成 (耗时 0 秒) - 正常终止
    这种返回结果又代表什么意思