多态性和抽象的父类

时间:2013-04-13 10:05:47

标签: java polymorphism abstract

在我正在做的练习中,我在层次结构中有3个类: 员工(抽象类) 工作人员扩展了员工 经理扩展员工

我还有一个班级使用这3个班级:工厂

我现在必须构建一个方法,将Employee e添加到Employees数组中。 属性:

_emps - 类型员工的数组。 _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类是抽象的,我不能这样做。

这是一个多态实践,所以我想教授希望我们把工人和经理放在数组中,但是我不能在这个方法中将Worker和Managers添加到数组中。

任何帮助都会很棒,

谢谢。

1 个答案:

答案 0 :(得分:1)

我认为创建一个引用对象数组是完全可以的。应该没有问题。

但是,如果您要创建副本,请检查clone方法,实施该方法并在addEmployee中使用它。

以下是如何实施Cloneable的示例 - http://www.jusfortechies.com/java/core-java/cloning.php

然后

this._emps[this._numOfEmps]=e.clone();
++this._numOfEmps;