【发布时间】:2015-02-05 14:48:50
【问题描述】:
我 100% 肯定以前有人问过这个问题,但我不知道用谷歌搜索什么:
假设我有一个抽象类 Ngram,它基本上只是一个 List:
abstract class Ngram {
private List<Word> words = new ArrayList<Word>();
... }
现在是否可以根据参数 n 创建子类 Unigram、Bigram... 的对象?像这样的:
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
}
我尝试返回一个新的 Unigram,但这不起作用。我想让抽象超类的构造函数这样做不是最好的主意,但我不知道如何解决这个问题。任何提示都非常感谢,谢谢
【问题讨论】:
标签: java class constructor abstract