这是我的代码的摘录
package dictionary;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.regex.*;
public class IntelliCwDB extends CwDB {
public IntelliCwDB(String filename) {
super(filename);
}
@Override
public void add(String word, String clue) {
System.out.println("inelli");
}
}
和CwDB ……
package dictionary;
import java.util.LinkedList;
import java.io.*;
import java.util.Scanner;
public class CwDB {
protected LinkedList dict;
public CwDB(String filename) {
dict = new LinkedList();
createDB(filename);
}
public void add(String word, String clue) {
System.out.println("cwdb");
dict.add(new Entry(word, clue));
}
protected void createDB(String filename) {
try {
BufferedReader f = new BufferedReader(new FileReader(filename));
while (f.ready()) {
this.add(f.readLine(), f.readLine());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
在main()部分,我创建了一个新的IntelliCwDB对象,它触发createDB()的执行.
问题是我希望CwDB.createDB()使用它自己的CwDB.add()方法,而不是IntelliCwDB中的方法.有没有其他简洁的解决方案,而不是单独创建CwDB,然后将其传递到IntelliCwDB的构造函数只是为了重写LinkedList< Entry> dict数据库?