В практике, которую я делаю сейчас, у меня есть 3 класса в иерархии: Employee (абстрактный класс) Worker extends Employee Manager extends Employee
У меня есть дополнительный класс, который использует эти 3 класса: Factory.
Теперь мне нужно создать метод, который добавляет Employee e в массив сотрудников. Атрибуты:
_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 абстрактен, я не могу этого сделать.
Это практика полиморфизма, поэтому я думаю, профессор хотел, чтобы мы поместили Рабочих и Менеджеров в массив, но я не могу добавить Рабочих и Менеджеров в массив в методе.
Любая помощь будет отличной,
Спасибо.
Employee
. Таким образом, вы можете поместить в него любые классы, которые расширяютEmployee
. - person Lukas Knuth   schedule 13.04.2013