这个在Delphi中调用的"循环继承"是什么?

Luc*_*fen 0 delphi inheritance

前几天我看到了这样的代码:

type
    TFather = class;
    TSon = class(TFather);
    TFather = class(TSon);
end;
Run Code Online (Sandbox Code Playgroud)

儿子继承自继承自儿子的父亲.搜索循环继承但仅搜索Java结果.

这个叫什么?

Rob*_*edy 5

示例代码(现在已删除)不会按照您的想法执行.你看到TMycxGridDBTableView被定义为后代TcxGridDBTableView,然后你看TcxGridDBTableView,被定义为的后代TcxGridDBTableView.

但是,TcxGridDBTableView您在顶部看到的与TcxGridDBTableView您稍后看到的不同.第一个是指在别处宣布的类,在其他一些单元中.下一个例子是声明单元中的类恰好具有与其他单元类相同的基本名称.

这种技术被称为插入类.它用于引入一个新GetViewDataClass方法,但最终仍然使用相同的类名.使用具有该名称的控件的表单将使用该类的新版本而不是原始版本.这是一种自定义VCL控件的方法,无需编译和安装自定义包.