簡體   English   中英

多態和抽象父類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM