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

これは非常に簡単で、うまくいくはずです。ただし、ArrayPointStoreExceptionおよびとして表示されNullPointerExceptionます。誰でも私を助けてもらえますか?何を間違えたのかわかりません。すべてが順番に配置されているように見えます。クラスはすべて同じパッケージに含まれています。

4

1 に答える 1