gpt4 book ai didi

delphi - 如何隐藏对象的 protected 过程?

转载 作者:行者123 更新时间:2023-12-03 14:51:24 24 4
gpt4 key购买 nike

在一个基类中,有一个 protected 过程。继承该类时,我想隐藏该过程,以免从外部使用。我尝试从 private 甚至 strict private 部分覆盖它,但仍然可以从外部调用它。 Original 类不是我的,因此我无法更改 TOriginal 的定义方式。

是否可以在我的继承类中隐藏此过程?又如何?

type
TOriginal = class(TObject)
protected
procedure SomeProc;
end;

TNew = class(TOriginal)
strict private
procedure SomeProc; override;
end;

最佳答案

protected 方法已经对外部隐藏。 (大部分;见下文。)您无法降低类(class)成员的可见性。如果基类声明该方法 protected ,则该类的所有后代都可以使用该方法。

<小时/>

在 Delphi 中,与类相同的单元中的其他代码可以访问该类的 protected 成员,甚至是来自不相关类的代码。这有时很有用,但通常是为了解决其他设计缺陷。如果您有一些“确实、确实”应该受到保护的东西,您可以将其设置为严格保护,然后特殊的同一单元访问规则就不适用。

关于delphi - 如何隐藏对象的 protected 过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9400170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com