1

我需要在 XSuperObject 库中的 TObjectArray 类中添加一些功能。我可以直接将它添加到 XSuperObject.pas 的源代码中,但这不是我应该这样做的。相反,我想从 ISuperArray/TSuperArray 对派生我自己的接口+类。但是怎么做?我知道如何自己派生一个类,但在涉及接口时我从来没有这样做过。

XSuperObject.pas 定义这些类如下:

type
  ISuperArray = interface(IBaseJSON<IJSONArray, Integer>)
  ['{41A2D578-CFAB-4924-8F15-0D0227F35412}']
    ...
  end;

  TSuperArray = class(TBaseJSON<IJSONArray, Integer>, ISuperArray)
    ...
  end;

我想做的是:

uses
  ...
  xsuperobject;

type
  TProductJson = class(TSuperArray)
    CategoryIndex: integer;
    SubcategoryIndex: integer;
    constructor Create(JSON: String);
    procedure AddCategory(Title: string);
    procedure AddSubcategory(Title: string);
  end;

或者我也应该同时从接口派生?也许是这样的?

uses
  ...
  xsuperobject;

type
  IProductJson = interface(ISuperArray)
  end;

  TProductJson = class(TSuperArray, IProductJson)
    CategoryIndex: integer;
    SubcategoryIndex: integer;
    constructor Create(JSON: String);
    procedure AddCategory(Title: string);
    procedure AddSubcategory(Title: string);
  end;

所以我的问题是:我如何正确地从 ISuperArray/TSuperArray 派生我自己的类/接口?
如果我也必须从接口派生,是否还需要复制 GUID、创建新的 GUID 或删除 GUID?

第二个问题:XSuperObject.pas 定义了 2 个函数:SO 和 SA,分别用于初始化 SuperObject。超级阵列。SA 函数会与我的派生接口/类保持兼容吗?或者在我从中派生后它不会与分配兼容吗?
(也许类型转换可以帮助那里?)

4

0 回答 0