下面給出的代碼顯示了運行時出現Stackoverflow錯誤。但如果我讓另一個類CarChange創建Car的對象,它會成功運行。我是一個初學者,通過這個代碼來了解java中向上註解的重要性。Stackoverflow錯誤
public class Car {
int i;
Car[] c=new Car[2];
Car() {
c[0] = new Polo();
i=0;
}
void drive(){
c[i].testdrive(); //the overloaded method in subclasses polo and swift
}
void change() {
if(i==0) {
i++;
c[i] = new Swift();
}
}
public void testdrive() {
//overloaded method in subclasses polo and swift
System.out.println(" test drive car");
}
//class Tester {
//main
Car c= new Car();
c.drive();
c.change();
c.drive();
使用我的ESP我會猜測'Polo'是Car的一個子類,它遞歸地調用Car的構造函數 – 2012-02-03 06:51:02
http://en.wikipedia.org/wiki/Indent_style – 2012-02-03 06:51:27
爲了更好儘快提供幫助,發佈[SSCCE](http://sscce.org/)。請使用一致且合乎邏輯的縮進代碼塊形式。 – 2012-02-03 06:52:53