Вы можете вызвать вспомогательный конструктор базового класса с помощью производного класса основного конструктора:Как вызвать вспомогательный конструктор базового класса из вспомогательного конструктора производного класса в Scala?
class Base(n:Int) {
def this(n:Int, i:Int) = {
this(n)
println(i)
}
}
class Derived(n:Int, i:Int) extends Base(n, i)
Есть ли синтаксис вызова вспомогательного конструктора базового класса из вспомогательного конструктора производного класса? Это не работает:
class Derived2(n:Int) extends Base(n) {
def this(n:Int, i:Int) = {
super.this(n, i) // Can't do this
println(i)
}
}
В других языках, вы можете сделать это, но вы должны вызвать базовый конструктор класса первый, поэтому я попытался сделать это здесь.
Обратите внимание, что я ищу синтаксис вызова, а не альтернативные способы достижения такого же результата.
Я не поставили достаточно мысли в это, чтобы дать его как полный ответ, но, как я вижу, вам просто нужно сделать первичный конструктор имеет возможность всех поведений в конструкторах, которые вы хотите (потенциально сделанные частными, если это не раскрывает красиво), а вспомогательные просто делегируют это, если это необходимо. –