После некоторого количества прибегая к помощи я написал этот кодНаследование тематического класса от абстрактного класса без дублирования кода
abstract class Foo(val name: String)
case class Bar(override val name: String, age : Int) extends Foo(name)
def sayHello(f : Foo) = println(f.name)
sayHello(Bar("bar", 10))
, но меня беспокоит, что есть так много дублирования коды между Foo и Bar. все поля дублируются между Foo и Bar, а затем я должен передать все поля Foo, когда я это сделаю.
Интересно, существует ли сжатый способ написания кода выше.
«так много дублирования кода между Foo и Bar». Вы имеете в виду объявление одного поля в 'Foo'? Я думаю, что это немного преувеличено. –
Мне пришлось переопределить каждое поле Foo в баре (хотя Bar - это ребенок Foo), а затем я должен был передать все поля Foo во время расширений. Теперь здесь это может не выглядеть много. Но в реальной жизни у моего Foo было 8 полей, и код выглядел очень уродливо. –