virtual是用在父类中的,override是用在子类中的,为了继承父类中带virtual的方法。
如:
TA= class
public
procedure ok;virtual;
end;
tB=class(TA)
public
procedure ok;override;
end;
var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
var
myclass: TB;
begin
MyClass := Tb.Create;
Myclass.ok;
end;
procedure TA.ok;
begin
showmessage('aa');
end;procedure TB.ok;
begin
inherited;
showmessage('bb');
end;//显示结果为:选出现'aa'对话框,再出现'bb'对话框
如:
TA= class
public
procedure ok;virtual;
end;
tB=class(TA)
public
procedure ok;override;
end;
var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
var
myclass: TB;
begin
MyClass := Tb.Create;
Myclass.ok;
end;
procedure TA.ok;
begin
showmessage('aa');
end;procedure TB.ok;
begin
inherited;
showmessage('bb');
end;//显示结果为:选出现'aa'对话框,再出现'bb'对话框
解决方案 »
- 折腾了几天了,高手帮看下-----我这个通用数据库录入&编辑基类,为什么这么不稳定?
- delphi 窗口置顶的问题
- 关于DBExpress的问题
- QR中实现套打,为什么预览数据都是正常,却只能打印部分数据?在线等,谢谢
- 关于主从表的问题?马上结帖!!!
- 金蝶用友中的薪资计算
- 一对多报表如何实现?急!!!谢谢!
- 请问如何取其应用程序的窗口句柄及如何取得它的编辑框及按钮列表....
- Help ME 特急!我发现2k的宋体空格占了2个字节,9x的宋体只有1个字节!
- 书上的一段话,不太明白!!
- 我快晕死了,这么一个简单的问题。问了2天也没人说明白清楚。是不是太简单不想帮忙啊。成功的话我50分相送!!!
- 如何让按钮的右面有一个倒的黑三角
顺便再解释一下
inherited;为继承父类的默认方法
virtaul说明此方法为虚方法可以重载或继承
override为继承
重载好象是overload or reintroduce吧
override是继承
overload叫过载
override叫覆盖
reintroduce重引入
不知道应该到底叫什么,搞不懂
望文生义太生硬了
OVER覆盖
覆盖式载入不是重载是什么?
至于override
你可以看看它是不是要求你对原函数的参数之类的都原样照搬才行
这不是继承是什么?
至于reintroduce
和overload一样是重载的意思
这个从字面上就看得出来嘛
是和父类不同的子类方法(重引入)
重载是overload,重载与多态没有关系.与多态有关系是override,也就是继承,
vt.制服, 践踏, 奔越过, 蹂躏, 不顾, 不考虑(某人的意见,决定,愿望等)
n.代理佣金overload
vt.使超载, 超过负荷
n.超载, 负荷过多没有计算机专业的翻译而过载翻译为Overload,各位找一找计算机词典,应该有更恰当的翻译。
具体详细的解释等我回家找来书在和大家讨论.