【问题标题】:Not implement all methods in sub class未实现子类中的所有方法
【发布时间】:2018-04-13 09:16:23
【问题描述】:

假设我们有private[feature] trait ImputerParams extends Params

然后我有class Imputer extend ImputerParams

我的问题是我需要实现Params 中的所有方法吗?根据Scala的文档,我应该。然而,当我阅读真正的生产代码时,我发现Imputer 并没有实现Params 的所有方法,而且效果很好。所以我很困惑。

如果我想了解更多,我应该阅读哪些主题?

【问题讨论】:

    标签: scala oop inheritance abstract-class traits


    【解决方案1】:

    扩展特征的类必须实现所有抽象函数定义,即没有主体定义的函数。

    但是,Scala 中的 trait 可以包含具有完整实现的函数,并且不需要覆盖它们。

    trait Foo {
      def bar(): Int
      def add(x: Int) = x + 1
    }
    

    在此示例中,扩展 Foo 的类将必须覆盖和实现 bar,而不是 add

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 2014-10-28
      相关资源
      最近更新 更多