2

这是我的代码。方法覆盖的简单演示。

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();
      }
   }
}

这很简单,它应该可以工作;但是,它以ArrayPointStoreExceptionand的形式出现NullPointerException。谁能帮帮我?我不知道我做错了什么。一切看起来井井有条。这些类都在同一个包中。

4

1 回答 1

2
 Bond bond[] = new ConvertibleBond[6];    
 bond[i] = new Bond(); 

你有一个 ConvertibleBond 数组。它只能以这种情况为例,而不是任何旧邦德。

你可能想要

 Bond bond[] = new Bond[6]; 
于 2013-07-17T00:16:15.153 回答