繁体   English   中英

覆盖java / scala中的整个类

[英]Override whole class in java/scala

我有一个已经提供的库,它有两个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)
        ....
    }
}

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

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

您显示的代码无法编译: data没有数据类型。

除此之外 - Regression类的结构很奇怪。 它应该具有可覆盖的EvaluationFunction 目前它已经内置到train方法中。 这就是你需要覆盖(/重写)整个类的原因。 这是类结构的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM