我了解覆盖一个方法/函数会重新定义其在派生类中的实现,使其与基类的实现不同。
现在让我困惑的是,如果我在ASP.NET中覆盖一个类,比如CreateChildControls()
(我随便挑了这个例子),VS2008会自动生成:
protected override void CreateChildControls()
{
base.CreateChildControls();
}
很好, 默认实现只是调用基类的CreateChildControls()
方法。
所以如果我想运行一些代码,由于我不知道如何使用base.CreateChildControls()
,我应该这样做:
protected override void CreateChildControls()
{
/*My Code Here*/
base.CreateChildControls();
}
或者,完全忽略
base.CreateChildControls()
并直接执行protected override void CreateChildControls()
{
/*My Code Here*/
}
base.OnXxxx
。是否有什么经验法则可以决定是在派生方法的开头还是结尾调用base.CreateChildControls
? - superjos