我需要在 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 函数会与我的派生接口/类保持兼容吗?或者在我从中派生后它不会与分配兼容吗?
(也许类型转换可以帮助那里?)