突然想到一个问题,和大家一起分享
不知道大家在写类的时候,有没有碰到要给父类的构造函数传递参数的情景。估计碰到的会对super([参数列表])这样的构造形式有所见识吧。<
br>现在有一个问题是这样的:众所周知,super()和this()都必须出现在构造函数的第一行,但是,如果我要在 super()或者this()之前为他们的参数写点初始化代码就显得不好办了。
例如,现有一个数据存储类用来 模拟简单的数据库
import java.util.Map;
/**
* 数据存储类
* @author vlinux
*/
public class DataStore {
private Map<String,String> valueMap; //键值对应MAP
/**
* 根据键名获取值
* @param name 键名
* @return 对应的值
*/
public String getValue( String name ) {
return valueMap.get(name);
}
/**
* 设置键名对应MAP
* @param valueMap
*/
public DataStore( Map<String,String> valueMap ) {
this.valueMap = valueMap;
}
}
/**
* 数据存储类
* @author vlinux
*/
public class DataStore {
private Map<String,String> valueMap; //键值对应MAP
/**
* 根据键名获取值
* @param name 键名
* @return 对应的值
*/
public String getValue( String name ) {
return valueMap.get(name);
}
/**
* 设置键名对应MAP
* @param valueMap
*/
public DataStore( Map<String,String> valueMap ) {
this.valueMap = valueMap;
}
}
好,现在准备出问题了,如果我要派生一个子类 UserDataStore,拥有如下的构造方法
public UserDataStore( String username, String password ) {
//super(...);
}
//super(...);
}
请问,如果是让你写UserDataStore类,你是如何用最小的代价,把
<"username",username>
<"password",password>
这两对键值导入到 DataStore 的 datas 中去呢?
大家发挥下自己的想象力~~~嘻嘻