Joh*_*ass 1 oop inheritance abstract-class scala traits
假设我们有private[feature] trait ImputerParams extends Params.
那么我就有了class Imputer extend ImputerParams。
我的问题是我需要实现所有方法吗Params?根据 Scala 的文档,我应该这样做。然而,当我阅读真正的生产代码时,我发现Imputer并没有实现 中的所有方法Params,并且它运行良好。所以我很困惑。
如果我想了解更多信息,我应该阅读哪些主题?
扩展特征的类必须实现所有抽象函数定义,即没有主体定义的函数。
然而,Scala 中的特征可以包含具有完整实现的函数,并且不需要重写它们。
trait Foo {
def bar(): Int
def add(x: Int) = x + 1
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,扩展的类Foo必须重写并实现bar,但不是add。