import java.util.HashMap;
class R extends HashMap<String, Object> {
public R() {
put("code", 0);
put("msg", "success");
}
public static R ok() {
return new R();
}
public static R ok(String msg) {
R r = new R();
r.put("msg", msg);
return r;
}
// 这里不理解,为什么是super.put,而不是this.put
public R put(String key, Object value) {
// super.put(key, value);
this.put(key, value);
return this;
}
}
public class R_test {
public static void main(String[] args) {
System.out.println(R.ok().put("a", "aaa"));
}
}
有个地方不是很理解,就是put方法中,为什么要用super.put,不能用this.put。我的理解是,子类继承父类,可以调用父类的方法,但用this.put会报错,请问是为什么?
this.put
是递归调用自己,super.put
是调用父类中定义的 put,是原功能实现。这个类重载
put
大概只是为了能return this
链式调用吧