父类一般要有一个无参数的构造方法:
因为子类如果没有显性的调用父类的构造函数的话就会默认加入super(); 即调用父类的无参数构造函数,当父类没有无参数构造函数就会报错
e.g.1
2
3
4
5
6
7
8
9
10
11
12public class Response implements Serializable {
private String code;
private String message;
public Response(String code, String message) {
this.code = code;
this.message = message;
}
...
}
那么:1
2
3
4
5
6public class LoginResponse extends Response {
public LoginResponse(String code, String message) {
super(code, message);
}
}
是肯定要有的;(别的先不写,这个肯定是要有的) i.e. 调用父类的构造方法,显式调用super其中传递父类构造方法的参数。
但是如果:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16public class Response implements Serializable {
private String code;
private String message;
public Response() {
this.code = "0";
this.message = "success";
}
public Response(String code, String message) {
this.code = code;
this.message = message;
}
...
}
1 | public class LoginResponse extends Response { |
经常复习基础非常重要👍