【发布时间】:2011-11-30 22:46:17
【问题描述】:
我在 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]
}
我的问题在这里,当我尝试实例化这些抽象类时,我无法使用不同的返回类型覆盖方法操作(..),此代码不起作用。
我已经有多行代码使用了返回唯一基因组 G 的突变操作()方法...我可以通过使用包装器来保存这个 OOP 结构,一个中间对象来捕获我的基因组,并绕过这个问题还有一个通用结构?
非常感谢您的灯, SR。
【问题讨论】:
标签: oop scala types overriding