java-Stackoverflow错误
作者:互联网
下面给出的代码显示了运行时的Stackoverflow错误.但是,如果我创建另一个类CarChange来创建Car对象,它将成功运行.我是一个初学者,请执行以下代码以了解在Java中进行向上转换的重要性.
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();
解决方法:
stackoverflow通常意味着您有一个无限循环.
收到此消息的原因是因为您从testdrive方法调用驱动器,并且在该方法中再次调用drive.
标签:java,stack-overflow 来源: https://codeday.me/bug/20191014/1912114.html