[英]Polymorphism and abstract parent class
在實踐中,我現在在層次結構中有3個類: Employee (抽象類) Worker擴展Employee Manager擴展Employee
我還有一個使用這3個類的類: Factory 。
我現在必須構建一個將Employee e添加到Employees數組的方法。 屬性:
_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添加到數組中。
任何幫助都會很棒,
謝謝。
我認為創建參考對象數組是完全可以的。 這應該沒有問題。
但是,如果要創建副本,請檢查clone
方法,實現它並在addEmployee
使用它。
下面是如何實現Cloneable的一個例子- http://www.jusfortechies.com/java/core-java/cloning.php
然后
this._emps[this._numOfEmps]=e.clone();
++this._numOfEmps;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.