在看struts
中间有这么一段:
1.有一个登陆用 LoginForm 继承自 ActionForm
public class LoginForm extends ActionForm{
……
}2.在LoginAaction中处理这个form时,参数form的类型 Actionform 是 LoginForm 的父类,但在程序中为什么能把form强制转化为其子类。public ActionForward execute(ActionMapping mapping,
ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception
{ ……
LoginForm loginForm=(LoginForm) form;
……
}
中间有这么一段:
1.有一个登陆用 LoginForm 继承自 ActionForm
public class LoginForm extends ActionForm{
……
}2.在LoginAaction中处理这个form时,参数form的类型 Actionform 是 LoginForm 的父类,但在程序中为什么能把form强制转化为其子类。public ActionForward execute(ActionMapping mapping,
ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception
{ ……
LoginForm loginForm=(LoginForm) form;
……
}
LoginForm loginForm=(LoginForm) form;
如果是这样声明的话是可以强转的,如果form中实际存储的是ActionForm的话是不行的。
LoginForm loginForm=(LoginForm) form;
这样做呢?
是不是在struts框架(struts-config.xml)中,
<form-beans>
<form-bean name="LoginForm" type="com.demo.struts.forms.LoginForm"/>
</form-beans>
这段话的功能就相当于:
ActionForm form=new LoginForm();
LoginForm loginForm=(LoginForm) form;
这段话?
反正我一般是不这样实例化,用谁实例化谁。接口的也一样。
所以需要强制转化