Inheritance haxe-如何为prototype clone()函数自动强制转换类型?

Inheritance haxe-如何为prototype clone()函数自动强制转换类型?,inheritance,casting,clone,haxe,Inheritance,Casting,Clone,Haxe,我有一个原型类,描述如下: class CEnumList<T:EnumValue> { ... public function clone():CEnumList<T> { var result:CEnumList<T> = new CEnumList<T>(); ... return result; } } 我有一个错误“data.CEnumList应该是data.cha

我有一个原型类,描述如下:

class CEnumList<T:EnumValue> {
    ...
    public function clone():CEnumList<T> {
        var result:CEnumList<T> = new CEnumList<T>();
        ...
        return result;
    }
}
我有一个错误“data.CEnumList应该是data.char.celeents”,这是绝对正确的。但是,如果我继承的类仅因枚举类型不同,那么我应该如何继承prototype clone()方法呢?我是否应该创建尽可能多的clone()方法,因为我有不同的类,而所有这些方法都将强制转换私有基类克隆的类型


可能这根本不是关于haxe的问题,而是关于应用程序体系结构的问题。

如果您需要准确返回CElements,那么是的,您将需要另一个返回CElements的克隆方法

但是您可能不希望扩展CEnumList,而是希望typedef像这样扩展它

typedef CElements = CEnumList<EElements>;
typedef CElements=CEnumList;
这应该可以做到,因为结果将被正确键入(因为类型相同,
typedef
只给出一个同义词)

var damage:CElements = baseDamage.clone();
typedef CElements = CEnumList<EElements>;