私のプログラムでサブクラスのセッターとゲッターを与える配列を取得するのに問題があります。Javaのスーパークラス、サブクラス、および配列。配列に表示されないサブクラスのメソッドを継承する
Iは、メインクラスPerson
、サブクラスSchoolEmployee
、及び(Person
クラスからフィールドを継承)SchoolEmployee
からフィールドを継承する2つのサブクラスを有します。
すべてが機能しているかどうかを確認するためのテストファイルを作成しましたが、Person
クラスのメソッドしか提供できないようです。
schoolemployees[0] = new Teacher(FirstNameHere, SecondName, etc...);
schoolemployees[1] = new Teacher(FirstNameHere, SecondName, etc...);
schoolemployees[2] = new Office(FirstNameHere, SecondName, etc...);
schoolemployees[2] = new Office(FirstNameHere, SecondName, etc...);
私の問題は、私は、次のとおりです。私は、各クラスのために作られたコンストラクタを使用して、配列内の値を入れて進め、その後
Person[] schoolemployees = new Person[4];
:
は例えば、私は配列を作成しましたPerson
クラス内のフィールドとメソッドを設定/取得することしかできません。例えば
:私はサブクラス内からフィールドやメソッドのコールを取得/設定しようとすると、彼らは全く
input = JOptionPane.showInputDialog(null, "Enter name for first name");
schoolemployees[1].setFirstName(input);
表示されません。
誰かが、配列の継承されたフィールドを見ることができない理由について、いくつかの洞察を提供してもらえますか?ありがとうございました。
継承 'SchoolEmployee'は' Person'、ではない、その逆にすべてのメンバーを持っていることを意味します。 – shmosel