虚函数和函数覆盖的一个疑惑???(100)

  • 主题发起人 主题发起人 rwlin
  • 开始时间 开始时间
R

rwlin

Unregistered / Unconfirmed
GUEST, unregistred user!
//1. 基类窗体FORM1 定义了一个过程calc ,并把该窗体定义为虚函数 ,便于子类继承;// Procedure Calc
Virtual;Procedure TForm1.Calc;Begin ShowMessage('1');End;//2. form1窗体显示的时候调用上面的过程,结果显然是弹出对话框 “1”Procedure TForm1.FormShow(Sender: TObject);Begin Calc;End;//3. 从form1 继承创建子类窗体form2 ,并对calc 窗体标志为overload;//Procedure Calc
Overload;Procedure TForm2.Calc;Begin ShowMessage('2');End;Procedure TForm2.FormShow(Sender: TObject);Begin inherited;End;//那么当显示窗体 form2的时候,为什么弹出的提示还是“1”,而非“2”;?//不会执行重载后的函数?//在form2 中显式 执行calc 当然没问题,提示“2”,但这不便于基类的封装,请指教
 
Overload改为override
 
正解, 结贴!!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
675
SUNSTONE的Delphi笔记
S
S
回复
0
查看
652
SUNSTONE的Delphi笔记
S
后退
顶部