the following code works as intended:
scala> case class Family(numPeople: Int)
defined class Family
scala> class MyFamily(val numBoys: Int, val numGirls: Int) extends Family(numBoys + numGirls)
defined class MyFamily
scala> val f = new MyFamily(2, 3)
f: MyFamily = Family(5)
scala> f.numPeople
res5: Int = 5
But what if the numBoys + numGirls part is more complex and takes several lines, is there some tidy way to set the numPeople value later? I tried doing this, but the Family(0) part looks wrong:
scala> class MyComplexFamily(val numBoys: Int, val numGirls: Int) extends Family(0) {
| override val numPeople = numBoys + numGirls
| }
defined class MyComplexFamily
scala> val f3 = new MyComplexFamily(3, 4)
f3: MyComplexFamily = Family(7)