在java/scala中重写整个类

在java/scala中重写整个类,java,scala,inheritance,Java,Scala,Inheritance,我已经提供了一个库,它有两个Scala类: class EvaluationFunction (data:DataHolder) { def calculate(params:ParamHolder) = {...} } 及 我想创建自己的回归类,其行为与原始回归完全相同,但使用不同的求值函数。然而,我能想到的唯一方法是扩展回归并覆盖整个train方法。但是它包含了回归类中几乎所有的逻辑——我还是从头开始写吧 有更好的办法吗?例如,每次原始类调用EvaluationFunction时,

我已经提供了一个库,它有两个Scala类:

class EvaluationFunction (data:DataHolder) {
    def calculate(params:ParamHolder) = {...}
}

我想创建自己的回归类,其行为与原始回归完全相同,但使用不同的求值函数。然而,我能想到的唯一方法是扩展回归并覆盖整个train方法。但是它包含了回归类中几乎所有的逻辑——我还是从头开始写吧


有更好的办法吗?例如,每次原始类调用EvaluationFunction时,以某种方式告诉我的扩展回归类调用另一个类?

显示的代码不会编译:数据没有数据类型


除此之外,
回归
类的结构很奇怪。它应该具有可重写的
EvaluationFunction
。目前,它内置于
列车
方法中。这就是为什么需要重写整个类。这是类结构的问题。

您控制回归类吗?然后,只需将您希望调整的部分封装在一个方法中并覆盖它。不幸的是,我没有:(我认为数据类型不是真正相关的,并跳过了它。无论如何,问题是,我对回归类没有任何控制权。问题仍然是一样的,
回归
类构造错误。去和库维护人员聊一聊。或者..重写整件事。
class Regression {
    def train(data:DataHolder) = {
        ...
        val costFunction = new EvaluationFunction(data)

        //find params to minimize costFunction.calculate(params)
        ....
    }
}