如果加上reintroduce将隐藏祖先类的同名方法,那么隐藏方法和覆盖方法有什么不同,最好有例子说明,分数可加!
解决方案 »
- TWICImage中的LoadFromStream重写,主要是要释放LStream := TStreamAdapter.Create(FData);这句话
- 怎么用程序把一个HTML页面保存成一个TXT文件。
- 如何提高delphi 显示提示的速度
- mscomm问题,在大富翁没几个人回答,看csdn怎么样!
- 怎样在局域网客户端查找服务器上的文件
- 如何让qrlabel纵向显示
- 我想显示数据库中的所有字段,但是我要用DISTINCT 刷掉其中重复的zch字段。
- 太气愤了,请您来评评理~~~
- socket 程序问题,各位大侠指点一下,弄了两天了!
- grid index out of range是什么问题,怎么解决?
- 急,有关socket的问题???
- 有哪位朋友知道如何写得到硬盘序列号的代码,就是哪个API函数GetVolumeInformation函数的用法?
若不加overriden编译器会warning,即覆盖了父类的同名方法,有点类似于overload,当然也就不能用inherited了
这是Delphi帮助的原文,to HIDE an inherited VIRTUAL method.所以我认为是父类的虚方法在子类里面希望不是虚方法的时候,可用reintroduce,这是reintroduce的一个主要目的,否则override就可以了。TA = class
public
procedure F; virtual;//虚方法
end;TB = clas(TA)
public
procedure F; reintroduce;//静态方法
end;不对之处,请指点
总的来说,reintroduce只是起到了屏蔽编译警告的作用。
"但如果在子类的该方法中加上inherited的话,还是会先调用父类的同名方法,再调用子类方法自己的实现."
好像不是这样吧?如果用reintroduce,无论加不加inherited,都是与父类一样的实现。