我肯定100%,這已經被問過,但我不知道google一下:JAVA - 創建抽象類的對象取決於參數
假設我有一個抽象類NGRAM這基本上只是一個列表:
abstract class Ngram {
private List<Word> words = new ArrayList<Word>();
... }
現在可以創建一個子類的對象Unigram,Bigram ...取決於參數n?事情是這樣的:
int n;
for(Word w : Sentence.getWordList()) {
Ngram ngram = new Ngram(n);
... }
所以NGRAM的構造會是這個樣子:
Ngram(int n) {
if(n==1) : //create Object of Type Unigram, let ngram refer to this object
}
我試圖返回一個新的單字,但不起作用。我想這不是讓抽象超類的構造函數這樣做的最大想法,但我不知道如何解決這個問題。是值得讚賞的任何提示,謝謝
謝謝,這實際上使有很大的意義。 – 2015-02-05 16:12:54