servlet继承体系(二)

子类进行初始化 覆盖父类的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多态:子类继承父类,子类中有父类中的方法并且能使用。而且子类创建的对象能直接赋值给父类,这样父类就可以调用子类中的方法,而不同的子类 进行重写父类中的方法 有不同的实现,子类还可以有自己的功能,父类有多种不同的子类形,这就叫多态  我个人理解。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值