私は継承と多型を使いこなしています。私がタイプの従業員(私のスーパークラス)の配列を作らなければならなかったテスターに着くまで、すべてがうまくいっていました。現在このプログラムを実行しようとすると、このエラーが表示されます。私はemployeeArray =ヌル;.を持って宣言するとき、私はこれはとは何かを持っていると仮定しているスレッド「メイン」のjava.lang.NullPointerExceptionカスタムタイプの配列を初期化する
で
例外しかし、それを残しておくと、各従業員を配列に入れることに間違いがあります。従業員配列は初期化されなければならず、デフォルトでemployeeArray = null;を含める必要があります。私がjava上に持っている本は、これらの種類の配列には本当に触れていません。そして、私は、オンラインで自分のトラブルに対する答えを見つけるのに困っています。誰でも助けることができれば幸いです。
私もこの
Employee [] employeeArray = new Employee[3] ;
のようなものを試してみましたこれは、すべてのエラーを返しませんでしたが、私は全く探していたものを返しませんでした。それは私が必要とするものにもっと似ていますか?スーパークラスとサブクラスで問題がありますか?
public class EmployeeTest {
public static void main(String[] args){
Employee [] employeeArray = null;
SalariedEmployee employee1 = new SalariedEmployee("Esther", "Smith", "111-111-111", 6, 2011, 2400);
CommissionedEmployee employee2 = new CommissionedEmployee("Nick", "McRae", "222-222-222", 1, 1998, 50000, 0.1);
SalPlusCommEmployee employee3 = new SalPlusCommEmployee("Dan", "Mills", "333-333-333", 3, 2011, 1000, 0.05, 500);
employeeArray[0] = employee1;
employeeArray[1] = employee2;
employeeArray[2] = employee3;
System.out.println(employeeArray[0].getEmployeeDetails);
System.out.println(employee1.toString()); // call the method from the sub class SalariedEmployee
System.out.println(employee2.toString()); // call the method from the sub class CommissionedEmployee
System.out.println(employee3.toString()); // call the method from the sub class SalPlusCommEmployee
}
「Employee [] employeeArray = new Employee [3];はあなたの必要とするものです。 「私が探していたものを返さなかった」とはどういう意味ですか? –
サブクラスを返していて、それはいくつかの16進数のように見えます。 SalariedEmployee @ a90653 CommissionedEmployee @ de6ced SalPlusCommEmployee @ c17164私が取得しています何です。私は、名前、SIN、開始日などの従業員を宣言するときに見ることができる情報のゲッターとステッターを持っています。私はすべての情報を返そうとしていました。正直言って私はちょうど継承で始まっているので、私は以前に間違いを犯している可能性が高いです。配列を稼働させようとすると、たくさんのthigsが変更されました。 – Sh0gun
super-classまたはsupper-interfaceで配列を初期化すると、その配列に新しいオブジェクトを追加する柔軟性が増します。 – simaremare