![]() |
1
7
你不用
如果后代的方法 重写 祖先的,那它就不藏了。对祖先方法的调用被路由到后代的方法。 如果后代的方法 祖先的,那么它也不会隐藏。两个都可以打电话。 |
![]() |
2
1
|
![]() |
3
1
好吧,在重载方法/构造函数的类中,似乎不能隐藏该方法/构造函数。我带着一个小小的“黑客”来设法把构造器从计算机中隐藏起来
在这个例子中,TiPhone只有一个构造函数可用。但它确实打破了多态性(这是向TCellPhone隐藏第二个构造函数所付出的代价)。我想知道是否有人找到了一种不破坏多态性的方法。
|
![]() |
4
0
我想把这个作为罗布·肯尼迪的回答的评论,但既然我不能,我就来。。 只是因为你没有。
你看到了你没有隐瞒任何事情的证据。你检查过的3个可用的构造器就是证据。
我想把我的想法放在如何隐藏上,但我同意塞尔塔克的观点,首先我要知道你对隐藏的定义是什么。 编辑: 我刚看了你提到的帖子,我想你误解了这些概念。这是我的简短解释。
在那篇文章的回答中,重载关键字使祖先的构造函数仍然可用。 另外,针对伊恩在以下评论中提出的问题:
虽然它们看似简单的问题,但仔细一看就会立刻让你觉得它们的性质完全相反。问题1希望隐藏方法/构造函数,而问题2希望不仅显示一个方法/构造函数,而且显示多个方法/构造函数。所以如果你把它们混在一起 一步到位 ,他们肯定会互相取消。难怪他们会让你头痛。。。:) 解决这两个问题的基本原则不是一步到位。这意味着我们需要一个中间类来解决问题1,并在该中间类的后代中执行重载。像这样的:
在此处使用重载关键字,否则将取消隐藏。现在,在隐藏完成之后,现在可以在重载关键字的子代中自由地发送垃圾邮件,以获得具有相同名称的多个构造函数。
|
![]() |
Some1Else · 函数在Delphi中重新创建TForm 2 年前 |
![]() |
Agmcz · Delphi安卓库。so未安装(AAB) 2 年前 |
![]() |
nader · 如何使用delphi在web上提交表单 6 年前 |
![]() |
kwadratens · Delphi中的卡方分布函数代码 6 年前 |
|
user9672569 · 如何在完整的位图图像中绘制阴影效果? 6 年前 |
![]() |
mmmm · MSBuild(用于Delphi)Make-like功能 6 年前 |