0

私が今やっている練習では、階層に 3 つのクラスがあります: 従業員(抽象クラス) ワーカーは従業員 を拡張しますマネージャーは従業員を拡張します

これらの 3 つのクラスを使用する追加のクラスがあります: Factory

ここで、Employee の配列に Employee e を追加するメソッドを作成する必要があります。属性:

_emps - タイプEmployeeの配列。_numOfEmpes - 配列内の従業員の数を示します。

これは私が書いたコードです:

public boolean addEmployee(Employee e){
    if (this._numOfEmps<MAX_EMPS)
    {
        this._emps[this._numOfEmps]=e;
        return true;
    }
    return false;
}

問題は、行ごとに次のように考えていることです。

this._emps[this._numOfEmps]=e;

エイリアス オブジェクトの配列を作成しますが、これが何をしなければならないかわかりません。私が通常行ったことは次のとおりです。

this._emps[this._numOfEmps)=new Employee(e);

しかし、 Employee クラスは抽象的であるため、それはできません。

これはポリモーフィズムの実践であるため、教授はワーカーとマネージャーを配列に配置することを望んでいたと思いますが、メソッド内の配列にワーカーとマネージャーを追加することはできません。

どんな助けでも素晴らしいでしょう、

ありがとうございました。

4

1 に答える 1

1

参照オブジェクトの配列を作成してもまったく問題ないと思います。それで問題ないはずです。

ただし、コピーを作成する場合は、cloneメソッドを確認して実装し、 で使用しaddEmployeeます。

Cloneable を実装する方法の例を次に示します - http://www.jusfortechies.com/java/core-java/cloning.php

それで

this._emps[this._numOfEmps]=e.clone();
++this._numOfEmps;
于 2013-04-13T10:10:10.547 に答える