私は Scala に非常に慣れていないので、これが本当に簡単な質問である場合は許してください。どうすればこれを機能させることができますか?
scala> trait Foo
defined trait Foo
scala> class FooImpl extends Foo
defined class FooImpl
scala> trait Bar { def someMethod(foo: Foo) }
defined trait Bar
scala> class BarImpl extends Bar { def someMethod(foo: FooImpl) {} }
<console>:10: error: class BarImpl needs to be abstract, since method someMethod in trait Bar of type (foo: Foo)Unit is not defined
(Note that Foo does not match FooImpl)
class BarImpl extends Bar { def someMethod(foo: FooImpl) {} }
Foo は特性であるため、FooImpl が Foo と一致しないのはなぜですか? Bar の someMethod のシグネチャを変更して、Foo または "with Foo" を拡張するものを期待していると言う必要があると思いますが、これに関するドキュメントが見つからないようです。