scala - 在 Trait 内覆盖 Object 内的函数

标签 scala overriding

假设我有这样的东西:

trait A {
  object B {
    def doSomething = "test"
  }
}

class C extends A {
   def out = print(B.doSomething)
}

class D extends A {
   // override B.doSomething
}

如何覆盖 object B 中的函数 doSomething

最佳答案

这有点重复,但有两个不同的问题:

首先,objects are not meant to be overridden .二、inheriting from a nested class is somewhat straightforward

class A{
  class B{
    def foo = 1
  }
}

class C extends A{
  class B extends super.B{
    override def foo = 2
  }
}

关于scala - 在 Trait 内覆盖 Object 内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227278/

相关文章:

algorithm - 如何使用第一个 map 的值检索嵌套 map 的值?

scala - 在编译的 Scala 中,bitmap$0 字段是什么?

Scala Future `.onComplete` 函数在调用后被丢弃?

java - 为什么 Java 不允许重写静态方法?

javascript - 如何防止在 jQuery Mobile 中堆叠链接对话框的 URL

scala - 如何在 Scala 中查找列表中的唯一项

scala - 测试事件提交到服务

java - 每次重写方法时都需要调用 "super.XXX"吗?

java - 方法隐藏在java中的好处

C++ 重写方法未被调用