我有一个原型类,如:
class CEnumList<T:EnumValue> {
...
public function clone():CEnumList<T> {
var result:CEnumList<T> = new CEnumList<T>();
...
return result;
}
}
克隆方法实现了创建实例完整副本的标准过程。我有一个继承的类:
class CElements extends CEnumList<EElements> {
...
}
其中EElements是枚举类型。但是当我在某个地方打电话时:
var damage:CElements = baseDamage.clone();
我有错误&#34; data.CEnumList应该是data.char.CElements&#34;这绝对是正确的。但是,如果我的继承类只有enum类型不同,我应该如何继承原型clone()方法?我应该创建尽可能多的clone()方法,因为我有不同的类,所有这些方法只会转换私有基类克隆的类型吗?
关于应用程序架构的问题,可能不是关于haxe的问题。
答案 0 :(得分:2)
如果你需要确切地返回CElements然后是,你将需要另一个返回CElements的克隆方法。
但你可能不希望扩展 CEnumList,而是 typedef 就像这样
typedef CElements = CEnumList<EElements>;
应该这样做,因为结果将被正确输入(因为类型将是相同的,typedef
只是给出一个同义词。)