2016-04-29 3 views

ответ

5

Я думаю, что единственный обходной путь, чтобы определить некоторые абстрактные методы признака, которые напоминают конструктор Params и переопределить их в конкретной реализации:

trait A { 
    def message:String 
} 

val a = new A { 
    override val message = "Hello!" 
} 

В Скале всем теле вашего класса/признака является конструктором. Поэтому в основном вы используете один и тот же подход:

class B (override val message:String) extends A 

val b = new B("Hello!") 
+0

Что делать, если я хочу, чтобы определить класс 'B расширяет Ā' и имеют' Ā' обеспечивая конструктор по умолчанию для него (как если бы 'A' был' абстрактный class') , – Neil

+1

@Neil, см. Обновление. – Aivean

Смежные вопросы