java - 计算器错误

标签 java stack-overflow

下面给出的代码在运行时显示 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();

最佳答案

Car() {
    c[0] = new Polo();
    i=0;
}

因为 Polo 是 Car() 的子类 - 它必须适合 Car[] - 它会调用 Car自己构造时的构造函数。 Car 构造函数尝试创建一个新的 Polo()

因为 Polo 是 Car() 的子类 - 它必须适合 Car[] - 它会调用 Car自己构造时的构造函数。 Car 构造函数尝试创建一个新的 Polo()

因为 Polo 是 Car() 的子类 - 它必须适合 Car[] - 它会调用 Car自己构造时的构造函数。 Car 构造函数尝试创建一个新的 Polo()

...你明白了吗?

关于java - 计算器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9124733/

相关文章:

C# 递归填充 TreeView 堆栈溢出

java - 为什么快速排序的 JDK 实现有堆栈溢出的风险?

java - 递归程序具有一个带有示例方法的StackOverflowError

java - 为什么它向我显示 java.lang.StackOverflowerror

java - 面向 Java 开发人员的 Groovy 迁移

java - 当在 Android L 上构建并安装在 Android K 上时,用于测试崩溃的调试 APK 分发

java - Jenkins 部署插件正在部署到 tomcat 但未启动应用程序

java - 从 ArrayList 中删除重复的字符串

java - spring messaging 将 json 字符串转换为映射

c++ - 检测栈满