在 Trait 内覆盖 Object 内的函数

Override a function inside an Object inside of a Trait

假设我有这样的东西:

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. Second, 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
  }
}