加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 如何隐藏对象的受保护过程?

发布时间:2020-12-15 04:16:15 所属栏目:大数据 来源:网络整理
导读:在一个基类中,有一个受保护的过程.继承该类时,我想隐藏该程序,使其不被外部使用.我尝试从私有甚至严格的私有部分覆盖它,但它仍然可以从外部调用. Original类不是我的,所以我无法改变TOriginal的定义方式. 是否可以在我继承的类中隐藏此过程?如何? type TOr
在一个基类中,有一个受保护的过程.继承该类时,我想隐藏该程序,使其不被外部使用.我尝试从私有甚至严格的私有部分覆盖它,但它仍然可以从外部调用. Original类不是我的,所以我无法改变TOriginal的定义方式.

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

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

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

解决方法

受保护的方法已经从外部隐藏. (主要是;见下文.)您无法降低类成员的可见性.如果基类声明方法受保护,那么该类的所有后代都可以使用该方法.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读