Может быть, так:
object E1 extends Enumeration {
type E1 = Value
val A, B, C = Value
}
class ExtEnum(srcEnum: Enumeration) extends Enumeration {
srcEnum.values.foreach(v => Value(v.id, v.toString))
}
object E2 extends ExtEnum(E1) {
type E2 = Value
val D, E = Value
}
println(E2.values) // prints > E2.ValueSet(A, B, C, D, E)
Одно замечание: невозможно использовать значения E1 из E2 по имени:
E2.A // Can not resolve symbol A
Но вы можете назвать их как:
E2(0) // A
или:
E2.withName(E1.A.toString) // A