哪种情况下要用重载和虚拟方法?请举个例子出来,谢谢大家!
解决方案 »
- delphi2010 隐藏窗体
- delphi写的3层C/S,socket连接;请问如何将客户端的文件传递到服务器上
- 盒子开通了,特此通知大家一声...顺便散点分...
- 不要 Webbrowser,怎么执行 html
- 动态创建按钮及指定按钮事件的问题?
- 有若干个图片的网址,怎么用delphi实现依次下载这些图片
- 如何用delphi的excel控件在程序中做出嵌入excel表页面的效果?以MDI自窗口方式显示
- 屏保的问题..(200分)搞定再开贴.
- 做过Flash播放器的哥们请看过来!!
- 数据源如何不要输入密码?
- TIDHttp怎么对网页进行Get和Post的操作,有例子吗
- 转:2009创新籽亿高科峰会精彩图文回顾
----------------------------------------------
1、一般在同一个类中或同一个单元中,存在函数名相同而函数的参数个数或类型不一样,就需要使用重载的方法;例如:
A、同一个单元中存在一下2个函数:
function CalcValue(iParm: integer): integer;
function CalcValue(dParm: double): double;2、虚拟方法是可以被子类覆盖的,如果许多子类都拥有同样的方法,就可以在父类中使用虚拟的方法,这样不同的子类就都可以继承并覆盖这个方法了,例如在父类可以这样声明:
function GetUserID: string; virtual; 在其子类中可以这样使用:
function GetUserID: string; override;
procedure Draw(Canvas:TCanvas);virtual;
然后每个子类都override这个方法,实现各自的画动作。这样使用的时候,只要调祖先的这个方法就可以把各自的图型画出来,而不用管是哪个具体的子类