我正在開發一個項目,其中一個需求是我們使用一個通用數據類型(其他需求:抽象類,繼承,保存/加載函數,彙總&組合)抽象基類的通用數據類型返回
我想我會創建一個庫來填寫所有的需求,很難想出何時何地使用泛型數據類型,然後似乎很明顯,如果我有一個類稱爲媒體和兩個子類被稱爲書和CD書的長度是整數(頁),CD的長度是雙倍(分鐘& seco NDS)
我想通這將有助於使這種在媒體:
public abstract class Media<T>{
private T length;
//lots of other variables & methods here, took out for sake of cutting to the chase
public T getLength(){
return length;
}
public void setLength(T length){
this.length = length;
}
}
問題:
但現在的問題是,它如何可以返回一個類型時,它不會收到一個在getLength中,因此不知道它是哪種類型,除非它以某種方式設置?或者一個解決方案是讓每個子類在構造函數中調用一次該函數來設置它?
我可以以某種方式覆蓋private T length;
變量在子類中書和CD?只是爲了設置它們的類型,使得getLength按照它應該的方式運行,還是有其他解決方案?
可以選擇在其他地方使用通用數據類型,但我不知道它在哪裏是合適的,我的教授甚至挑戰了需求,因此他們讓我知道他們會讓我失敗if他們認爲即使「禮節」不是一個要求,但某些東西「不適用」或「不是一個好例子」。
爲什麼你不使用'Media'作爲接口? –
它在'getLength()'中沒有收到一個類型,但是當你創建'Media'實例時收到一個類型。你能展示一個你打算使用這個'Media'類的代碼的例子嗎? –
@MuratK。抽象類是一個需求 – user326964