0

在我现在正在做的实践中,我在层次结构中有 3 个类: Employee(抽象类) Worker extends Employee Manager extends Employee

我还有一个使用这 3 个类的附加类:Factory

我现在必须构建一个将 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 类是抽象的,我不能这样做。

这是一种多态实践,所以我猜教授是想让我们把Workers和Managers放在数组中,但是我不能在方法中将Workers和Managers添加到数组中。

任何帮助都会很棒,

谢谢你。

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 回答