delphi从另一个泛型类继承泛型类

delphi从另一个泛型类继承泛型类,delphi,generics,delphi-xe2,delphi-xe,delphi-xe4,Delphi,Generics,Delphi Xe2,Delphi Xe,Delphi Xe4,我想实现一个泛型类TB,它继承自另一个泛型类TA,如下所示 base = class(Tobject) public procedure test1( x : integer ); virtual; end; generic TA<T>= class (base ) public procedure test1( x : T ); overload; end; generic TB< T, Y >= class (TA<T>) public p

我想实现一个泛型类TB,它继承自另一个泛型类TA,如下所示

base = class(Tobject)
public
 procedure test1( x : integer ); virtual;
end;


generic TA<T>= class (base )
public 
 procedure test1( x : T ); overload;
end;

generic TB< T, Y >= class (TA<T>)
public 
 procedure test1( addParameter1 : T ; addParameter2 : Y ); overload;
end;
base=class(Tobject)
公众的
过程test1(x:整数);事实上的
结束;
通用TA=类(基)
公开的
程序测试1(x:T);超载;
结束;
一般TB=类(TA)
公开的
程序test1(addParameter1:T;addParameter2:Y);超载;
结束;

但它不起作用!你知道我该怎么做吗。

你的思路是正确的,但是你不能用泛型参数定义你的基类而不使它泛型(过程test1的参数类型为“t”,在这个上下文中是未知的-编辑:代码已经被修改了-参见编辑修订版)。类必须是100%自包含的,并且必须能够在不依赖任何后代类的情况下进行语法分析和构造

因此,要么您必须使基类成为泛型类,要么您必须从中删除对类型T的依赖


除此之外,您的代码应该编译,如果您删除“generic”这个词,因为Delphi中没有这样的关键字,并在整个代码段前面加上“Type”。

T
base
中没有定义,
generic
不是关键字。“它不起作用”不是很有帮助。你希望达到什么目标?修复编译器错误很容易,但代码不会做任何有用的事情。我感觉到你正在为一个设计问题苦苦挣扎。我相信,如果你问问题而不是你的解决方案,你会在这里得到最大的启发。那又怎么样?非泛型基类中的虚拟函数有什么用途?你能解决这个问题吗?