3
我有一些问题找到关于我的问题在斯卡拉oop信息,peraphs你可以帮我找到一个好的解决方案,或良好的网络/书资源?通过在scala中返回类型覆盖方法,oop解决方案?
我有一个主要的抽象类Operator
:
abstract class Operator[G <: AbstractGenome, F <: GenomeFactory[G]] {
implicit val factory: F
def operate (genomes: IndexedSeq[G])
}
和另外两名继承抽象类:
abstract class Mutation [G <: AbstractGenome, F <: GenomeFactory [G]]
extends Operator [G, F] {
override def operate (genomes: IndexedSeq[G]):G
}
abstract class CrossOver [G <: AbstractGenome, F <: GenomeFactory [G]]
extends Operator [G, F] {
override def operate (genomes: IndexedSeq[G]) (implicit aprng : Random):IndexedSeq[G]
}
我的问题就在这里,我不能覆盖的方法进行操作(..)不同返回类型时,我试图instancite这些抽象类,此代码不起作用。
我已经有多行代码,它使用返回一个独特的Genome G的变异操作()方法...我可以保存这个OOP结构通过使用包装,一个中间对象来捕捉我的基因组,并绕过此还有一个通用结构的问题?
非常感谢您的灯光, SR。