Scala - 使用参数扩展 multi class

Scala - Extends multi class with parameters

我想做一些这样的类。

class A(val a1: String) {
    def message() = println(a1)
}
class B(val b1: String) {
    def doB() = println(b1)
}
class C(val c1: String) {
    def something() = println(c1)
}
class AB(val a: String, val b: String) extends A(a) with B(b) {
    //                                               ^error
}
class AC..
class BC..

我尝试使用 trait,但由于 trait 不能有任何参数,它也出错了。我应该怎么做才能做出这样的东西

它给你错误,因为 trait 没有构造函数。但是你可以把它改成这样的trait参数;

class A(val a1: String) {
  def message() = println(a1)
}

trait B {

  def b: String

  def doB() = println(b)
}

class AB(val a: String, val b: String) extends A(a) with B {
  //this should work                                               
}