void Main()
{
SonB s = new SonB();
s.Show();//先调用子类的函数,再调用基类的函数(在子类方法中base.Show()),一共messageBox.show(...)了两次
}
//**************
public class SonB : BaseA
{
public string b = "bb";
public override void Show()
{
MessageBox.Show(b);
base.Show();
}
}
public class BaseA
{
public string a = "aa";
public virtual void Show()
{
MessageBox.Show(a);
}
}
//******************
protected override void WndProc(ref Message m)//子类的消息循环
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt32() == SC_CLOSE)//不影响关闭操作,因为后面还调用了基类的消息循环( base.WndProc(ref m);//基类的消息循环)
{
............................
//return;//返回的话就不调用基类的消息循环了,这样就不能执行基类的基本消息对应的行为了
}
}
//根据继承关系,子类重写的函数调用完后,可以手动再调用基类的被重写的函数;
base.WndProc(ref m);//基类的消息循环
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)