覆盖java / scala中的整个类

时间:2017-12-04 08:39:32

标签: java scala inheritance

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

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

class Regression {
    def train(data:DataHolder) = {
        ...
        val costFunction = new EvaluationFunction(data)

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

我想创建自己的回归类,其行为与原始回归完全相同,但使用不同的评估函数。但是,我能想到的唯一方法就是扩展回归并覆盖整个列车方法。但它包含了回归类中的所有逻辑 - 我也可以从头开始编写它!

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

1 个答案:

答案 0 :(得分:3)

您显示的代码无法编译:{{1​​}}没有数据类型。

除此之外 - data类的结构很奇怪。它应该Regression可以覆盖。就目前而言,它内置于EvaluationFunction方法中。这就是你需要覆盖(/重写)整个类的原因。这是类结构的问题。