对于一个非常基本的类别通用模型,我试图以逆变方式获得与一对对象相关联的态射。
class Obj[DerivedObj <: Obj[DerivedObj]] { /* ... */ }
class Morphism[DerivedMorphism <: Morphism[DerivedMorphism]] { /* ... */ }
我想以某种方式能够定义:
def mor( from : SomeConcreteObj, to : SomeConcreteObj ) : SomeConcreteMorphism;
但是使 mor 成为 Obj 的方法的“明显”解决方案需要 Obj 额外由 Morphism 进行类型参数化。
实现这种事情的Scala方式是什么?