子类进行初始化 覆盖父类的init()方法并要调父类的初始化方法。
public class helloworldServlet extends MyGenericServlet{
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
}}
问题是:万一子类在覆盖init()方法的时候 忘记了 调用super.init(config);父类的方法 服务器就会出错,还有一个原因就是每个子类的初始化的方法 实现的功能是不一样的 怎么办?
继承的父类MyGenericServlet 利用java多态的性质,在初始化的时候 自身在调用一个空实现并且是无参数的init()方法 如下
//父类
abstract public class MyGenericServlet implements Servlet, ServletConfig, Serializable {
// 定一个全局的ServletConfig对象
private ServletConfig confige;
// Serializable接口实现网络传输
private static final long serialVersionUID = 1L;
// 初始化
public void init(ServletConfig config) throws ServletException {
this.confige = config;
this.init();
System.out.println("初始化s");
}
public void init() {
//NO OPP
}
其他的方法省了。。。
}
//子类
public class helloworldServlet extends MyGenericServlet {
private static final long serialVersionUID = 1L;
public void init() {
System.out.println("初始化。。。。1");
}
其他方法省了。。。
}
这样 子类就可以自定义初始化方法 也可以不创建。
java多态:子类继承父类,子类中有父类中的方法并且能使用。而且子类创建的对象能直接赋值给父类,这样父类就可以调用子类中的方法,而不同的子类 进行重写父类中的方法 有不同的实现,子类还可以有自己的功能,父类有多种不同的子类形,这就叫多态 我个人理解。