gpt4 book ai didi

java - 继承中的 ArrayStoreException

转载 作者:搜寻专家 更新时间:2023-11-01 02:09:33 25 4
gpt4 key购买 nike

当我遇到这样的问题时,我正在处理继承。我的代码如下

   public class Parent {
public void methodParent() {
System.out.println("Parent");
}
}
public class Child extends Parent {
public void methodParent() {
System.out.println("override method in Child");
}

public void methodChild() {
System.out.println("method in Child");
}
}
public class MainTest {
public static void main(String[] args) {
Child[] c = new Child[10];
Parent[] p = c;

p[0] = new Parent();
c[0].methodParent();
}
}

堆栈跟踪是

Exception in thread "main" java.lang.ArrayStoreException: com.test.Parent
at com.test.MainTest.main(MainTest.java:10)

调试时检查 c 然后我收到类似的消息

org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: Type has not been loaded occurred while retrieving component type of array.

请帮助我了解问题出在哪里。

最佳答案

当你这样做的时候

    Child[] c = new Child[10];
Parent[] p = c;

你是在告诉编译器 p 只是一个 Parent 数组。但是,还有一个运行时检查数组是否仍必须包含 Child 引用。正是这个运行时检查失败了。

关于java - 继承中的 ArrayStoreException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20867934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com