这是我的代码。方法覆盖的简单演示。
public class Bond {
void display() {
System.out.println("Bond");
}
}
public class ConvertibleBond extends Bond {
void display() {
System.out.println("ConvertibleBond");
}
}
public class Pg177E2 {
public static void main(String[]args) {
int random = (int)(10*Math.random());
Bond bond[] = new ConvertibleBond[6];
for(int i = 0; i < 6 ;i++) {
if(random < 5) {
bond[i] = new Bond(); // the problem occurs here
} else if(random > 5) {
bond[i] = new ConvertibleBond();
}
}
for(int i = 0; i < 6; i++) {
bond[i].display();
}
}
}
这将足够简单并且应该起作用;但是,它以
ArrayPointStoreException
和NullPointerException
的形式出现。有人可以帮我吗?我不知道我做错了什么。一切看起来都井井有条。这些类都在同一包中。 最佳答案
Bond bond[] = new ConvertibleBond[6];
bond[i] = new Bond();
您有一个ConvertibleBond数组。它只能是这种情况的实例,而不能是任何旧的邦德。
你可能想要
Bond bond[] = new Bond[6];
关于java - Java ArrayPointStoreException和NullPointerException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17689052/