Приведенный ниже код показывает ошибку 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' –
http://en.wikipedia.org/wiki/Indent_style –
Для лучшего помогите раньше, опубликуйте [SSCCE] (http://sscce.org/). И, пожалуйста, используйте последовательную и логичную форму отступов кода. –